SPTUTITTETE j i iti ’ j ’
] j iT] TTT TT iti HTT | iT] HHT PITT
Hil HH HH} HH THA HH} HHH HH / HH JETTED WH WET TTL Hii] MTT} WL Hi] Hi
i, HAN IH Hh ii HH) HT Hi ; Mi Ml) / UT) HY j TTL HT HTT j i
. A\ om LUTVHTEY " jae nekebeeeennns | Hen ] 16
ty IVA ms M | MT {teed HHS aint: fine hie
WH 1} Welland ifn aa TTT TUT me ith iH} WAH HiT Hf} HITT (| HAH HI RUS) |
ik HW } HIT)
A) UA He Y] MT | MH Hi} Hi HH Hill HL, THT THT
. }) WH Hi } HITT | HHH} Hi} HH TT Hf
) If HH ITET I Hi}
}} ee ‘ i) dl ul | nie 4 ii HITT
Hae WY): 5, MI, \c} AVANE?, AO) y ¢ NN OD OBEY 4) Bie TI I
|) HT Mi WA \i\\ Hii HH HA HH WH i) HHH} HHH) Ninh HH} HHH WTI} HH) Hi} i) a
Hii WH MIT HHI HT if} ATT HT HH HTT tl] HH THT Ht HH Hill
rea | HH} WH Hitt li WT HT HH / |
I] } HHI) WA HI MTT Ih
i TT | Hi) if} if TT iH] i ]
HH HI Hf HH HT HHHi| Hh} iif HH HH} Hii | j Hi) i} HH | TH Wii HT] /
Hill HH} HTT} Hi HI} Hl Hf Hil} i]) Wi HH; HH} HW Hi) HH } HHI HHH} HE WH) PAT
{| TA HHH} HH HHH) HHH HHT} HH if) HT | WHTTI| | TTT j
| | HH) HAH j TTL, HHL} HI
=| a] ! wi oy HT TH
HEIHE 43). els v} 1) Ou ja!) Inch “orn oyele ©) 4
.: Co Dinimor
TTT HH LH AHH
HH} WAT)
WH) Mi =e fl ds'sc
HT
HH}
Hi} HH} Hit
HH
log 2 Demi OS
WHA }
i HT HI il } i} HTT HI if} HHT Hi | if i Hi
HT} HL |! HHH HiT} Hy) Hi HT HT HW) WITH) HU HTT iH AHL Hit ij
| TUTTE LTT
AT
iT}
| { ]
MT H HD
TH
‘SEC cto C IDJELASES
a): ani
JORDAN
MOND
NIGHT @
FOOTBALL
Whether you're
_passing for the game- ve RIT
p winning touchdown, aa ual nny aD
Flight jumping through x eh Bist NANT iy A
oncoming traffic, or bd Ait serie)
dodging SAM missiles
over North Vietnam,
you are sure to enjoy
these AAA rated games. Each of these packages represent
some of the finest games within their class. They won't last
long, sO order yours now!
Areade (Pack 1) Adw./Srratege (Pack 2)
Miwa = Sportz (Pack 3) Air Comoat (Pack &)
Only $20.00 per Package!
Plus Shipping & Handling
(Continental U.S. Add: 1-$5.00, 2-$5.50, 3-$6.00, $4-$6.50
All other destinations, see CMD main ad; Page 28)
With this special
offer, buy three or
more packages Xs
and get a 1670 {a
(1200) baud
modem
C¢ ON
ISSUE 16
COMMODORE
WORLD
THE NEWS MAGAZINE FOR COMMODORE 64 & 128 USERS
GENERAL MANAGER
Charles R. Christianson
5
Eoitor
Doug Cotton
oa
ADVERTISING SALES
Charles A. Christianson
(413) 525-0023
°
PHOTOGRAPHY
Wayne Wrubel
Sd
Grapuic Arts
Doug Cotton
>
Evectronic Pre-Press & PrinTING
Mansir/Holden
5
Cover Design by Doug Cotton
Commodore™ and the respective Commodore product names
are trademarks or registered trademarks of Escom GmbH.
Commodore World is in no way affiliated with Escom GmbH.,
owner of the Commodore logo and technology. Commodore
World is published 8 times annually by Creative Micro Designs,
Inc., 15 Benton Drive, East Longmeadow MA 01028-0646.
Second-Class Postage Paid at East Longmeadow MA. Annual
subscription rate is US$29.95 for U.S. addresses, US$35.95
for Canada or Mexico, US$45.95 for all EC Countries, and
US$57.95 to all other addresses worldwide, All subscription
payments must be provided in U.S, Dollars. Mail subscriptions
to CW Subscriptions, c/o Creative Micro Designs, Inc., P.O.
Box 646, East Longmeadow MA 01028-0646,
Entire contents copyright © 1995 by Creative Micro
Designs, Inc., unless otherwise noted. No part of this
publication may be printed or otherwise reproduced by any
means without prior written consent from the publisher. All
programs published in this publication are for the personal use
of the reader, and may not be copied or in any way distributed.
All rights reserved, Programming examples and routines in this
issue which are presented for educational purposes may be
used in the creation of programs by the purchaser of this
magazine, provided credit for the routines is clearly presented
in either the program documentation, or the program itself.
Creative Micro Designs, Inc., assumes no responsibility for
errors or omissions in editorial, program listings or advertising
content. Creative Micro Designs, Inc. assumes no liability for
advertisers claims or reliability.
POSTMASTER: Send address changes to: CW Address
Changes, c/o Creative Micro Designs, Inc., P.O. Box 646, East
Longmeadow MA 01028-0646,
AUGUST/SEPTEMBER 1996
FearuRrEes
14
Commopore DEMOS by Sherry Freedline
Part two of our series takes a look at four more great demo programs.
16 Neurat Network on A Commopore 64 by John Walker
Find out how computers differ from human brains.
20 A 6502 Procranmer’s INTRODUCTION TO THE 65816 by Brett Tabke
Learn how WDC’s super processor differs from what you're used to.
37 A Grower's Guide To User Groups by Jayme Rice
Get some hot tips on drawing new members to your group.
Reviews
30 Ganes by Jason Compton and Sherry Freedline
Forgotten Worlds, Grand Prix Circuit, and Death Sword.
32 THe Sortware MANUAL: ProGRAMMING THE 65816 by Jim Brain
Find out about WDC's reference book on programming.
Cocumns
10 Just For Starters by Jason Compton
Find out what you can do with the User Port.
12 Graptic INTERPRETATION by Paul Sullivan
Looking for some geoWrite goodies?
34 The SySor’s Corner by Max Cottrel
Create ANSI menus for your BBS.
38 Carrie DETECT by Gaelyne R. Gasson
Learn how to transfer files on the Internet with FTP.
42 GEeOPROGRAMMIST by Maurice Randall
Find out how your GEOS applications can create data files.
44 AssemBty LINE by Jim Butterfield
An inside look at the Processor Status register flags.
46 PERIPHERAL VISION by Jim Butterfield
An overview of how Commodore's peripheral bus operates.
48 Basic INsTINCTS by David Pankhurst
More fractal programming!
48 Over Tue Epce by Harold Stevens, Jr.
Pirates are still sailing in the Commodore scene.
See Our NEW
DEPARTMENTS CHECKSUM
2 From tHe Epitor 8 ON Tre Horizon Utilit
4 BAcKTALK 56 Ctassiried Avs y
6 Commopore Trivia 56 Apverriser’s INDEX On Page 51
There’s no question that this most recent cycle has
been a hectic one. Our new assistant editor didn’t
work out, so we're back to looking for someone to fill
that position. In the meantime, all the editing, layout,
and graphics creation that goes into each issue has
fallen back into my lap. In addition, we've lost our
photographer, Wayne, who was also CMD's repair
technician. The latter spot has been filled, but we'll
need to figure out what to do for photographs in
upcoming issues. Despite these hurdles, we've
managed to nudge the page count back up to 56, and
I think we've produced a very well-rounded issue. Of
course, I may be somewhat biased.
There’s some bad news... a few hardware items
have quietly dissappeared from the supply chain in
the last few months. Notably missing in action:
CMD'’s FD-4000, the Super 1750 Clone,
SuperSnapshot, Action-Replay, VDC RAM Expansion
kits, and disk drive RAM Expansion kits. These are
sad losses, as there really aren't any products left that
directly replace or duplicate what these products did.
When suppliers run out of 1581 drives, no big deal,
there are FD-2000 drives that can pretty much
directly replace them; but losing both Super Snapshot
and Action-Replay leaves users without any means to
capture programs for archiving or operating from
devices like CMD’s HD. Expect to see some rise in the
value of these items in the used market.
There are some positive things happening, as well,
though... CMD's SuperCPU 64 has started shipping,
and work on the 128 version is now under way.
Maurice Randall has new versions of GeoFAX and
GeoSHELL coming along soon, and he has also
confirmed that he isn’t far off from releasing a new
GEOS driver/Configure package that will reportedly
revolutionize device handling under GEOS. Nick
COMMODORE WORLD 2
Rossi’s Novaterm 9.6 is now shipping on disk, and
has brought us Zmodem, Ymodem-G, and a lot of
other improvements. There are other software
developments under way, too... Matt Desmond
appears to be working regularly on his new version of
Desterm, Electric Boys recently sent us some images
created by a new C64 interlaced graphics editor that
they are working on, and CMD is finishing up
documentation for an English language version of
GoDot. CMD is also heading up projects to produce a
new 65816 assembler (SAS) and a machine language
monitor (SuperJiffy MON), both targeted at
SuperCPU developers; there are also indications that
the long-awaited Menuette 128 may be back on track
for release, along with an updated 64 version. So
there are indeed some things for users to look
forward to over the next few months.
Meanwhile, there are some really nice things to see
in this issue of Commodore World. Sherry Freedline
brings us her second installment on Commodore
demo programs; there's a very interesting article
about how computers and human brains differ, along
with a type-in program that lets the 64 emulate the
brain’s ability to recognize patterns; Brett Tabke
introduces the 65816 to 6502/6510 programmers
(we've added a useful opcode list and informative
programming models to this); and Jayme Rice,
President of TCUG, presents some excellent ideas on
promoting growth of user groups, In our regular
columns, find out what the User Port is good for (/ust
For Starters), how to create fractal images (BASIC
Instincts), and how to use Internet File Transfer
Protocol (Carrier Detect). We've also been rejoined
this issue by Harold Stevens, Jr., who tackles the
touchy subject of software piracy in Over The Edge. So
what are doing still reading this editorial? Dive in!
Doug Cotton
Editor
Issue 16
W NEW Games Disk! The Compleat Jon: 11 Games! the
whole gamut of gaming is covered here: artificial intelligence,
role-playing, mazes, fantasy, science fiction, education and
even non-violence (which was a radical concept in its time).
These eleven Games are among the best ever published on
LOADSTAR, Listed on the menu in chronological order, so
you can see how Jon's style changed as the yeas rolled by,
1581 disk 0021D3 $20. 1541 disk #0038D5 $20
VW NEW Puzzle dist
The Compleat Crossword: every
crossword puzzie published in Puzzle Page in one huge
collection! 220 puzzies! It uses Barbara Schulak’s CRUCIVERBALIST program to present the
puzzies and allows you to “mark” a puzzie when it’s solved so that you know which you've
solved and which you haven't yet. Each 1541 disk contains 110 puzzies. 1581 Disk #002003
$20, Disk 1(1541) #003605 $10.Disk 2 (1541) #0037D5 $10
crowerecay tear
VW NEW CHl2y Productivity! The Compleat Lee O: six o
Lee O. Clinton's best serious programs for the C-128 80- column mode. Finance, auto
expense, kitchen helper, genealogy, resume writing, mutual funds! One 1541 disk #0032D5.
One 1581 disk #001703 $10.00
Y NEW Word Searen! Super Star Search 1: 200 original word
search puzzles by Steven Thomas and Art Dudley, presented by John Serafino'’s modern point
and click program. One 1541 disk #0011D5 One 1581 disk # D3 $20.00
W New Story disk! The Compleat Prosequest '95:
NEW!!! A 1541 disk with all of the entries in the 1995 short story Melt Kine on it, including
the three grand winners. One 1541 disk #0035D5 One 1581 disk #0019D3 $5.00
Soft Weer! LOADSTAR T-Shirts: timitea
‘edition Fruit Of The Loom T-shirts. LOADSTAR’s nemesis, Knees
Calhoon, stands up to regular washing and drying. Where else can
parel? 50% Cotton//Polyester. $15.00 each
mall #960025, Medium #960125, Large
25, XX-L #960425
Tools! Tutorials! The Compleat
rammMefF: Best seller! Over Two megabytes of
@ crammed and stuffed onto eight 5.25-inch disks or two
1581 disks! Plus tools, extensions, languages, assemblers, tutorials and utilities! 5.25 set
#0005D5, 3.5-inch disk #0005D3. For $5 more, get C= Hacking MAG #0006D3 (on 3.5-inch
disks only and NOT available separately) to complete
your programming set. $20.00
PS Graupnics! Compleat PS Vol. 1
The Print Shop by Broderbund or Printmaster required).
er 1300 artistic and never before published PRINT SHOP
images, Scan through the many PRINT SHOP images
sequentially, by name, or by group number. Press a key and
save the greene you want in 2-block, 3-block and even
PRINTMASTER mone files! All that plus a printed guide!
Each volume is $20.00, Vol, 1: C-64/128 3.5-inch disk item
#0001d3, 5.25-inch disks item #0009d5. Vol. 2 (graphics from past LS issues): C-64/128
3.5-Inch disk item #0002d3. 5.25-inch disks item #0010d5.
_Load
Ss
n___Item# Price ea. T
EQTY
otal
August/September 1996
‘'\f— ro. a4 Smt
CEOS Clipart
LOADSTAR presents the biggest Geo
‘ollection of clip art and fonts ever offered at one
Rime. All of the Geos art that's ever appeared o:
OADSTAR, as well as some great files fro
eos fanatic Dick Estel, are available on twenty
55.25 inch disks or eight 3.5 inch disks. Most of thi:
as never been seen before! Use these graphics
n your GeoPaint, GeoWrite and GeoPublish
documents or convert to FGM with FGM ulilities.
Spiff up your GeoFAX documents with the
appropriate graphic -- every time! Prices are $20
lor any two 3.5 inch disks, or any five 5.25 inch’
disks. You can purchase the whole collection fo
1-800-594-3370 or 1-318-221-8718 to order b
redit card. Or send check or money order and
ecify (by LG number) which disks you want.
|_5.25-INCH DISKS
Disk 01 - RAILS: Railroad art trom Europe
nd the USA #001205
Disk 02 - VEHICLES/TAROT: Artwork of old
and new autos; excellent geoPaint drawings of the,
arot card set #0013D5
Disk 03 - CLIP ART: Inciudes converted
MacPaint files that have never before been
available in Commodore format #0014D5
Disk 04 - OTTOWA/PRIME CLIPS: Anwork
of the main landmarks of Ottowa; plus high qualit
public domain clip art #0015D5
Disk 05 - FONTS: More than 30 fonts trom past
ssues of LOADSTAR, plus articles (in geoWrite
format) on creating fonts. Also two ready-made
eaders for use with your own documents, one a
picture of a mail truck; the other reading FROM
HE DESK OF #0016D5
Disk 06, Disk 07, and Disk 08 - geoPaint and
Photo Album files with the great clip artwork
eatured on past LOADSTARS - includes
eoCurmudgeon, Anamalia | and Il, Australian
Animals, Valentine art and many more #0017D5,
0018D5, #0019D5
Disk 09 - GOODYKOONTZ FILES - Jasper
joodykoontz, born in Indiana in 1855, produced
oodykoontz’s Perpetual Calendar and General
Reference Manual (A Book for the Millions). This
disk includes scans from the book of a wide arra'
of subjects -- Gestures and Attitudes, Poultry,
raniology, and more. #0020D5
Disk 10 - OLD WEST: Scanned Artwork fro
Dick Estel’s FRO Software - mostly woodcut style
art of the old west, gold rush days and pioneer
scenes. #002105
oftware #0022D5
Disk 12 - HOLIDAY: Artwork tor New
ears, Valentine's, St. Patrick's Day,
Halloween, Thanksgiving and Christmas
0023D5
Disk 13 - PEOPLE/FACES: Scenes of people!
and faces trom FRD Software #0024D5
Disk 14 - FRD CLASSICS: Dick’s choice of
he best of the FAD collection #0025D5
Disk 15 - DINOS/CLASSICS: Dinosaurs and
other prehistoric beasts, as well as more first
hoice artwork from FRD, #0026D5
Disk 16 - SPORTS/MISC: Dozens of sports
related clips #0027D5
Disk 17 - OFFICE AND SCHOOL: Clips to
be used at work and around the house #0028D5
Disk 18 -MUSIC & MORE SCHOO
LIPS #0029D5
Disk 19 - SEASONAL AND HOLIDAYS: A
lip for any occasion #0030D5
Disk 20 - SEASONAL AND HOLIDAYS: A
lip for any occasion #0031D5
he 3,5" disks are roughly equivalent to two and a
halt 5.25° disks.
Disk 1: Equals disks 1, 2, 4B #0009D3
Disk 2: Equals disks 3, 6, 7A #0010D3
Disk 3: Equals disks 5, 8, 7B #0011D3
Disk 4: Equals 9, 10, 11A #0012D3
Disk 5: Equals 12, 13, 11B #0013D3
Disk 6: Equivalent of Disks 14, 15and
isome bonus files not on 5.25" disks #0014D3
Disk 7: Sports, Office and school, Music
#015D3
Disk 8: Music, Holiday and Seasonal
016D3
For your convenience, GeoViewer Is
included on each volume. GEOS 2.0 is
suggested,
DisKiulla Gard Gernes! The Compleat Maurice: a compilation of 26
solitaire card games written by Maurice Jones, the acknowled
the C-64/128. There’s even a brand new, never before publis!
d master of card game simulations for
game called Boomerang. Two 5.25
inch disks #0007D5 or one 3.5 inch disk #0007D3. $20.00 postage pald!
Qodles OF Stunning Art! Tutorials! The Compleat Walt:
Ouring LOADSTAR's first ten years we have published 24 of Walt Harned's slideshows and multimedia
events, Now we've gathered them into one huge collection: seven 5.25 inch disks or three 3.5 inch
disks! There are over 250 pictures, including some that have never been published. The greatest one-
man collection of art on any computer platform, 5.25-inch disks order #070425 3.5-inch disks order
#070423, $20.00 postage paid!
Name =
Address_
State
Postal Code :
Total Enclosed: _
QC) Check/money order made payable to "Loadstar" in US Funds
QJ American Express
C) MasterCard ) Visa
Card #
Exp Date /
Authorized signature: = <3
Subscribers: I prefer 01 5.25-inch diskettes 1 3.5-inch diskettes
LOADSTAR
P.O. Box 30008, Shreveport, LA 71130-0008
Questions: 1-318-221-8718 Fax 1-318-221-8870
L) Discover
COMMODORE WORLD
@ACKTALK
LET TERS AND QUESTIONS FROM OUR READERS
Who’s Your PAL?
After running our first installment of
“Commodore Demos” (CW#15, pg. 20) a few of
our readers were left with the nagging question,
“What do NTSC and PAL mean?”
NTSC and PAL are video starndards used
throughout the world, The NTSC video standard
(named for the National Television System
Committee) is used in most American countries,
Japan, Taiwan, Korea, and others. Most of the
rest of the countries where we commonly see
Commodore computers in use (UK, Germany,
Australia and others) have adopted the PAL
(Phase Alternating-Line standards) system.
While the actual differnces between these two
standards is rather technical, what you see on
your monitoris the effect of several hundred lines
of video information being written to it. Each of
these lines is referred to as a “raster scan line”.
NTSC has 525 lines and is generally operated on
a frequency of 60 Hz, while PAL has 625 lines and
usually operates on a 50 Hz source.
Why is this important? Well, the average
program on a Commodore could generally care
less which video standard you're using for display
purposes; however, specialized programming
such as that commonly used in demos often uses
video “raster” timing. The effect of operating
sucha program ona machine that doesn’t use the
intended video standard might be anything from
graphics that are jittery to disk lockups caused by
custom disk routines.
Perhaps you're wondering what it is that
determines whether a specific Commodore
computer is NTSC or PAL? There are three
hardware differences: the clock crystal, the VIC
chip, andajumper located on the circuit board. If
we get an opportunity, we'll try to present those
differences and how tochange the computer from
one standard to the other in a future issue.
FD/1581 Format Tip
Maurice Randall, our geoProgrammist columnist,
recently stumbled onto this ‘gotcha’ anda handy
COMMODORE WORLD
work-around tip for users that have both the
CMD FD Series floppy disk drive, and a
Commodore 1581. We'lllet Maurice tell the story
in his own words:
For all you FD Series owners, here’s my ‘Trick of
the Month’...
First, the scenario...
Okay, you've got an FD drive and you've also
gota 1581. You use both of them. You've got this
800K DD disk that you've been using in your FD,
and it’s been formatted with one native partition
on it. It’s been working just fine and then you
decided to reformatit in your 1581. Now, youare
using it in your 1581 as a 1581 disk, no more
native partition. It works just fine there as well,
and you decide to also use this disk in your FD
once again—but the FD won't read it! But wait...
The FD is supposed to be able to read 1581 disks,
right? Not this one. Now, you've used disks
formatted on the 1581 in the FD before with no
problems at all, but this one just won't work in
the FD anymore. But it still works fine in the
1581. Normally, you'd be more inclined to think
that the 1581 would have a problem with an FD
formatted disk, rather than the other way around.
If you've never seen this obscure problem, try
it. Format a double-density disk in your FD with
one native partition on it. Then reformat it in
your 1581. Your FD will no longer accept it.
Now for the cure (and you can use either your
1581 or your FD to fix the disk). The problem
stems from the fact that this disk still contains a
system partition. Check it out. Put it in your FD
and send an @$=P command to it. You will get a
partition directory and it will still show a native
partition on it. And that’s why the FD can’t read
the disk—because it can’t find a valid directory
header on track one where CMD Native partitions
normally have them. To fix this disk, you need to
wipe out the system partition. You can do this
very easily by sending a command to your drive.
And yes, the 1581 can be instructed to wipe out
4
the system partition without harming any other
data that you might have on the drive. Just send
the following command to the drive:
@ru OB p E> EE"
Let me explain this closer. Some of those
characters should come out as reverse characters
on your screen. The capital ‘F’, each ‘b’, and the j
should be reverse characters. To get the reverse
capital F, you press the F3 key. The reverse b is
obtained by pressing CONTROL-b. And likewise,
the reverse j is done with CONTROL. Be sure to
press the '@ key followed bya quote and then the
rest of the characters. End it with a quote and
then press return. Your 1581 will promptly trash
the system partition and the FD will once again
be able to read this disk. If you perform this on
your FD, it will also work, but to read it you will
have to first remove the disk from the drive and
then reinsertit. The FD will then be able to display
the directory every time thereafter.
With JiffyDOS, the above string can be sent to
the drive. Without JiffyDOS, or if you prefer, you
can make a basic program and keep it with all
your other little utilities. The following will do:
,"u@"chr$ (134) chr
$(2)+"p"+chr$ (10) +"p"+chr$(2)c
hrs (2)
3@ closel5
Then just save it to a disk as ‘WIPESYS’ or
something like that. Anytime you need to trash
the system partition on an 800K disk, just load it
upandrunit. Inline 10, make sure that the 8’ gets
changed to whatever device number you have
your 1581 or FDsetas, depending on which drive
contains the disk that needs the system partition
wiped out on.
Hope someone can get some use out of this
little tidbit.
- Maurice
%)
Issue 16
SOFTWARE SUPPORT
INTERNATIONAL
ENTERTAINMENT
Arkanoid 2 $7.97
Beyond Dark Castle $7.97
Beyond Zork 128 $12.97
Demon Stalkers $8.97
Double Dragon 2 $9.97
Heavy Metal $12.97
Heros of the Lance $14.97
Jeopardy 1-2-Jr $9.97
Keys to Maramon $9.97
Mean Streets $9.97
Ms Pacman $9.97
Napoleon In Russia $7.97
Ogre $9.97
4th & Inches $7.97
Champshp Baseball $7.97
Champn Basketball $7.97
Dave Winfield Batter Up $9.97
Fast Break $7.97
Hardball $7.97
Jack Nicklaus Golf $9.97
Jordan vs Bird $7.97
Leaderboard Golf $9.97
Pro Football Facts $9.97
Pro Soccer $7.97
Pure Stat Baseball $9.97
Sporting News Baseball $9.97
Star Rank Boxing $7.97
ACCESS
C-128 RGB Cable $17.95
C-64 Color Cable $12.95
Computer Hand 2 $6.95
Convert A Com $24.95
Disk Bank 10/3.5" $2.95
Disk Bank 10/5.25" $2.95
Disk Bank 100/3.5" $12.95
Disk Bank 100/5.25" $12.95
Disk Bank 70/5.25" $7.95
Disk Mailers $0.39
Drive Cleaners $6.95
Serial Cable 4 or 6ft $8.95
Drive Power Cable $7.95
User Port Cable $15.95
Com Modem Adapter $15.95
CALL TOLL FREE TODAY!
August/September 1996
Pacman $9.97
Plundered Hearts $12.97
Portal $14.97
Powerdrift $7.97
Questron 2 $9.97
Rampage $7.97
Rendevous With Rama $7.97
Roadwars $7.97
Sidearms $7.97
Steel Thunder $9.97
Strip Poker $14.97
Trump Castle Casino $12.97
Wheel Fortune 1-2-3 $9.97
Tony LaRussa Baseball $7.97
Tournament Tennis $7.97
WWF Wrestling $7.97
Acrojet $9.97
Apache Strike $7.97
Blue Angels $7.97
F-14 Tomcat $9.97
F-19 Stealth Fighter $12.97
Flight Sim Games $4.97
High Roller $7.97
Jet Combat Sim $7.97
Skyfox $7.97
Super Huey | $7.97
Top Gunner $9.97
ORIES
Floppy Disk Notcher $6.95
Dust Covers - specify $7.95
Ergostick Joystick $16.95
CBM 1200 Baud $9.95
Aprotek 2400 Baud = $49.95
1351 Smart Mouse $44.95
Mouse Holder $4.95
MW 350 Interface $44.95
64 Power Supplies $34.95
Printer Ribbons CALL
Userport Expander $24.95
3.5" 10 cnt.Floppy $7.95
5.25" 20 cnt.Floppy $4.95
Diskette Sleeves (25) $2.00
Write Protect Tabs(100) $1.00
We Carry America’s Largest Selection of C-64/C-128 Software!
PRODUCTIVITY
1750 Super Clone $99.95 Geos 128 v2 $44.97
Basic Compiler 64 $12.97 GeoPublish $34.97
Big Blue Reader $29.97 Graphic Label Wizard $14.97
B/W Prog Tools $14.97 Graphics Basic $9.97
B/W Power C $9.97 Home Designer 128 $24.97
B/W Turbo Cartridge $17.97 Manager, The $12.97
C128 Graphics Bundle $29.97 Maverick v5 $24.95
Christmas Model Kit $9.97 Model Diet $9.97
CSM Protection Man 1 $14.97 Newsroom $14.97
CSM Protection Man 2 $19.97 On Line Help $9.97
Data Manager 2 $14.97 Postcards $14.97
Designer's Pencil $9.97 Printmaster Plus $19.97
Drive Align 1541/71 $12.97 Superbase 64 or 128 $19.97
Easy Working Tri Pak $9.97 Swiftcalc w/Sideways $14.97
Geos 64 v2 $39.97
EDUCATIONA!
r .
Early Learning Friends $9.97
European Nations & Loc $9.97
Expeditions $9.97
Keys to Typing $9.97
Memory Manor Cart $9.97
Magic Spells $9.97
EFURBISTIED
C-128 Keyboard w/PS $119.95
1541 Disk Drive $49.95
1571 Disk Drive $89.95
1541 Clone Drive $39.95
40 Col Monitor $99.95
Snoopy Sky Scramble $9.97
Stickybear Math $9.97
Typing Tutor 4 $9.97
WizType/Wiz Math $7.97
Word Attack $9.97
Word Spinner $9.97
rlARDWARE
80 Col Monitor
$139.95
MPS-803 Printer With Tractor
Feed & Brand New Ribbon
Only $49.95
Items Listed Above Do Not Include Shipping. U.S 48 States - Add $5.50
per order. Alaska, Hawaii & Canada - add $5.50 for the first piece and
$1.00 per each additional piece per shipment. Second Day Air shipping
is available. Call for shipping charges. Call Or Write For Your Free c-
64/128 Catalog Listing HUNDREDS Of Commodore Products And
Special Offers For Your Computer. Our Order Takers Are On Duty 6:00
a.m, - 5:00 p.m. M - F and 7:00 a.m. - 3:00 p.m, Sat. - Pacific Time.
Softy S I
SOFTWARE oro N er anbresen Re,
Se ee Suite D-4
an Vancouver, Wa 98661
Cling (360) 695-1393
E-Mail To: software@pacifier.com
1-800-35$6-1179
Major CreditCards Accepted.
COMMODORE WORLD
Welcome to another edition of Commodore
Trivia. As many of you may know, these trivia
questions and answers have been donated by
me to the Commodore community at large.
Unlike other articles in Commodore World,
these trivia questions have been placed in the
public domain. I ask only that the trivia
questions remain intact and unchanged, and
that my name and address appear somewhere
so users can contact me. The trivia is also used
fora contest I run on the Internet; contact me at
the included address for more information.
Because curiosity has the best of me, I always
welcome a note or postcard detailing where the
trivia goes. I also welcome new questions—
provided they come with the answers. Enjoy!
Jim Brain
Brain Innovations, Inc.
10710 Bruhn Ave
Bennington, NE 68007
j.brain @ieee.org
COMMODORE TRIVIA #15 QUESTIONS
Where is the ROM in a 1541 located in the 64K memory map?
Which VIA on the 1541 is hooked to the read/write head?
In the Commodore DOS, what bit in the file type byte denotes a
If files are “locked” under Commodore DOS, under what
condition(s) may the file be changed?
How big can a program file be on a 1541 or similar?
Under BASIC 2.0, how does one open a random access file on a
A file that has a ‘*’ immediately before the filetype is called a
file.
We know the 1541 and similar drives have 5 internal buffer areas,
but how many does an 8050 drive have?
$0EO — What is the difference(s) between the Newtronics 1541 and the $OE7
1541C? (only one difference is needed)
SOE8
$0E1 | Whathappens when you type 35072121 in direct mode on the C64
and hit return? SOE9
“locked” file?
$0E2 If a SID chip is producing a “sawtooth waveform”, does the
waveform look like: SOEA
a) MM or
b) NA? SOEB
$0E3_ On BASIC 2.0, what special precaution(s) must one take when $0EC
working with relative files? (only one is needed) disk drive?
$0E4 — Whatincompatibility existed between C128 Rev.0ROMSandthe $0ED
REU?
$0E5 Whatcantriggeran NMlinterrupt?(countallsourceson onechip SOEE
as one)
$OE6 = What can trigger an IRQinterrupt? (countall sources on one chip —$0EF
as one)
On a “save-with-replace”, where is the location of the first track
and sector of the new copy of the program saved in the directory
entry for the old copy?
COMMODORE TRIVIA #14 ANSWERS
$0D0 The original PET had 73 calculator-style keys that were laid out in Hardware:
a rectangular matrix, not typewriter-style. Bil Herd
Dave Haynie
$0D1 SYS 32800,123,45,6. The screen will clear, and the software and Frank Palaia
hardware developers on the 128 project will be named. The exact
text is as follows:
[RVS] Brought to you by...
Software:
Fred Bowen
Terry Ryan
Von Ertwine
COMMODORE WORLD
$0D2
[RVS]Link arms, don’t make them.
The “original” PET came in two configurations, 4K and 8K, so:
The PET 2001-4 had 3071 bytes.
The PET 2001-8 had 7167 bytes.
Issue 16
$0D3 Sys 64790
$0D4 I know some of these are correct, but the sheer size of the list
prevents me from checking them ALL out.
FAT 40XX series
80XX series
PC-10 (I suspect a number of IBM clones did, and these things
have no consistent naming convention across country
boundaries.)
PC-20
Amiga 1000
SP9000 (SuperPET)
$0D5 31743 bytes.
$0D6 a) 3 sockets.
b) 2 sockets.
c) L socket.
d) 1 socket.
$0D7 The German version had additional keybaord drivers for umlaut
characters and dead keys.
$0D8 None other than the infamous Jim Butterfield.
$0D9 PRINT is faster, since the sys approach must process the pokes
before the sys, which are very slow.
$ODA Inside the top case of the Amiga (1000). There is an interesting $0DF
footnote to this question. It seems that at least some original
Amiga machines were labeled as Amiga (with no number). Then,
at some later point, the number was added. In addition,
Commodore produced some Amiga 1000 machines without the
signatures, but most had the telltale handwriting on the inside of
the case.
$0DB Assume carry was clear. If so, then $11 is the correct answer.
ChAD Service Center
AFFORDABLE ¢ FAST « DEPENDABLE
Call Today 1-800-638-3263
Our Team of Technicians are Among the
Most Qualified in the Industry!
Why Settle for Anything Less Than the Best?
We repair the following equipment: Commodore C-64, 64C, SX-64, C-128
and C128-D computers; 1541, 1541C, 1571 and 1581 Disk Drives plus
CMD Devices. JiffyDOS Installations a specialty. All repairs warranted for
30 days. Minimum charge $35.00 plus parts and return shipping. You must
contact CMD for authorization before sending any equipment.
Creative Micro Designs, Inc. P.O. Box 646 E, Longmeadow, MA 01028
August/September 1996
$ODC _ Its first number was 6567, and that is the number most people
know it by, but Commodore produced a VIC-II using a new
manufacturing process that was numbered the 8562.
$0DD Same here. The part number 6569 is the most remembered
number, but an 8565 will work as well.
SODE Note, for the purpose of the calculation [am performing, “pixels”
refers to picture elements that can be adddress and modified
using normal VIC modes, so there are 320*200 “pixels” on both
the PAL and NTSC screens. (I probably should have stated this,
but it is too late now.) Also, the screen refresh rates used in the
calculations are those defined by the respective television standards
(60Hz U.S., 50Hz European), even though the actual frequencies
are off by asmall percentage. (for example, the actual 50Hz refresh
rate on European VIC-II chips was calculates as 50.124567Hz by
Andreas Boose). So, the PAL draws 320*200*50 pixels per second
= 3200000 pixels/s. NTSC draws 320*200*60 pixels per second =
3840000 pixles/s . Now, some people thought I meant the whole
screen, notjust the display area provided by the VIC-II chip. Well,
lam notsure exactly how you calculate pixels on a screen, since
the numbers could vary from display to display, but ifwe measure
in scanlines:
PAL = 312 scanlines * 50 = 15600 scanliness
NTSC = 262 scanlines * 60 = 15720 scanliness
The NTSC machines wins both ways.
B is the correct answer, and there are a couple of reasons why:
1) 2- -2 takes longer to parse in the BASIC interpreter,
2) Commodore BASIC subtracts by complementing the sign of
thesecondnumberandadding. Thisincurs extra time. There are
even more subtle ones, but | leave them as an exercise for the
reader. Send me your reasons why.
nn
Specializing in NEW and USED Commodore Hardware,
Software and Accessories at excellent prices.
Send $1.00 for a HUGE list of products. Office Hours:
11:30 - 6:30 MST. Visa, MC, Discover and American Express accepted.
3366 South 2300 East, Salt Lake City, UT 84109
COMMODORE WORLD
COMMODORE AND CoOmpPUTER INDUSTRY NEws
Genie Sold Again, Launches Genie Interactive on the Internet
Just as things were beginning to settle back down with Genie (see “CMD
Captures Genie", CW#15, pg. 9), the announcement came that the service
has once again changed hands.
True to the indications we reported last issue, Yovelle Reniassance had
smoothed over relations with General Electric Information Services, who
sold the service earlier this year, But only a few short weeks later, it was
announced that the service had now been sold to IDT, a US-based Internet
and long distance service provider. IDT has already begun testing of an
Internet-based version of Genie, called Genie Interactive (http://
www.genie.com). The new site will place a heavy emphasis on integrating
the wide range of multimedia options available to graphical browser users,
but is also being structured to allow text browser access. IDT hopes to
utilize the new service to draw users who already have Internet access into
the Genie fold. Despite the emphasis on the Internet venture, the company
has also assured Genie sysops that the classic Genie online service remains
viable, and will continue to operate as it has in the past.
Loadstar Letter Goes Subscription, Merges with
Underground
According to Loadstar’s “Grand Exalted Mojo” Fender Tucker, the Loadstar
Letter #36 shipped with Loadstar #146 will be the last free issue provided
to Loadstarites.
Tucker notes, however, that this doesn’t spell and end forthe Commodore
newsletter, but rather a new beginning. The all-new subscription-based
Loadstar letter was slated to begin in August, with an annual subscription
rate of $12.00 per year for charter subscribers, Subscriptions are available
by sending a check to LOADSTAR Letter, P.O. Box 30008, Shreveport LA
71130.
Loadstar cites rising costs as the reason for the change in policy, adding
that their LOADSTAR disk publication will remain at its all-time low of
$69.95 per year.
On a related note, Scott Eggleston recently announced that he would
merge his Underground publication with the Loadstar Letter. The following
notice was to be sent to Underground subscribers:
Dear Underground Subscriber,
I must first thank you for having faith in our little publication that
started over twoyears ago. [hada desire to put outa quality publication
using Commodore equipment, and for the most part, I think I have
succeeded,
lrealize itis always hard to send money toan indpendent magazine,
as so many have dried up (along with all funds) in the past. I was
determined that this would never happen to the Underground, that I
would never leave my customers high and dry, with nothing to show
for their hard-earned dollars.
COMMODORE WORLD
There have been some real changes in my life recently, changes that
have made me reevalutate my most precious commodity: time. With
a new job, family demands, and filmmaking dreams, my time for
writing and publishing has become limited.
As a result, the Underground will be merging with the Loadstar
Letter, effective immediately. All remaining subscriptions will be
fulfilled by the LL, and 1 will be brought aboard as an Associate Editor.
In my opinion, this is a win-win situation for everyone. Everybody
continues to get a good publication for their money. | get to keep
writing about one of my favorite topics, and have time for my other
pursuits. The Loadstar Letter gets more subscribers. I feel this is a
good move for everyone involved—nobody loses.
If you have never heard of this monthly publication, let me bring
you up to date. Originally the LL was included as a freebie with
Loadstar’s fine disk publication. Strictly a liability, it was deemed that
as a subscribed-to newsletter, it could pay for itself. It will be twelve
full-size pages, which may be down from the Underground's twenty,
but it will arrive every month, something the Underground could
never do. Trust me, you'll be getting a lot for your money with the
Loadstar Letter.
The Head Editor Honcho Guy isJeffJones, a great writer and equally
great programmer. I look forward to having my work next to Jeff's, and
am honored to have been considered for this position. With both ofus
writing together, you're going to end up with an informative and
formidable source for Commodore info.
Youshould expect to see your first issue of the Loadstar Letter about
the same time as Underground #15 would have shown up. Although,
tobe honest, it'll probably show up sooner, as I've been abit tardy with
my issues as of late.
There are also a couple of other topics I need to address. Back Issues
of the Underground will still be available from me at $2.50 per issue.
The Underware disk will obviously no longer be available, but Tom
Adams [president of Meeting Commodore Users Through the Mail]
has informed me that he will copy back issues of the disk for as long as
people will want them, or as long as he is able to do so.
In closing, let me just say that I have enjoyed producing the
Underground for you, and was always thrilled to read your letters
telling me of some useful information that you gleaned from it. | still
have a lot of good articles in my head, and you'll get to read them all
(along with Jeff's), in upcoming issues of the Loadstar Letter.
Iffor any reason you need to contact me, please do so. Thanks again
for your support... see you outside the mainstream!
Sincerely,
Scott Eggleston
former Editor, the Underground
Associate Editor, The Loadstar Letter
Issue 16
New Commodore Discovery Debuts
So, what's new in the world of Commodore computing? That's at least a
part of the focus ofdisC=overy, anew online publication from Mike Gordillo,
Steven Judd, and Ernest Stokes. From a perusal of the first issue of this
publication, the apparent spin is to document both old and new technical
issues and techniques as they apply to the Commodore—though the
editors have mixed in a couple of articles which could be considered as
“lighter” reading. For the most part, though, this debut issue appears to be
very much like Commodore Hacking, for those ofyou who are familiar with
that long-standing bastion of techno-enthusiasm.
Included in this first issue are articles on IFLI, TRI-FLI (a new FLI
graphics scheme under development), the JCH sound editor, VDC timing,
upgrading the VDC RAM to 64K, C128 CP/M, and more.
To get the current issue, you'll need Internet Email or World Wide Web
access. On the Web, point your browser to hitp://vww.eskimo,com/~dray/
discovery.html. If you don’t have Web access, send an Email request to the
Editor-in-Chief at s0621126@dominic.barry.edu.
Threshold Products Sells Out
September 20th, 1996—Threshold Productions International is glad to
announce that the takeover process of our operations by Arkanix Labs is
finally complete. Arkanix Labs is taking over all day-to-day operations of
TPI and will fulfill any and all of TPI’s prior obligations. We feel Arkanix
Labs will be able to better realize the ideals previously set by TPI. Our hopes
are that Araknix Labs can provide for the customer where we have lacked
in the past therefore insuring a bright future for the Commodore 64/128
community.
Arkanix Labs will be using the Seattle address for all mailings. The
previous message number for TPI is now defunct.
Jonathan Mines [formerly of TPI] will continue to provide the Driven
mail subscriptions. For further information contact Petar Strinic
(petars@arkanixlabs.com). We have a WWW homepage at http://
wivw.arkanixlabs.com.
[A] Letter from Jonathan Mines follows...
A dark day for the NTSC Commodore community? No, buta bright
future isborn. Were I have failed in the past with TPII believe Arkanix
Labs will do a far superior job.
First off, anybody with orders will get their packages. There have
been delays, but I really didn’t forsee this takeover causing this much
trouble. I'm sorry for the delays, I will be handling all packages myself
in the next week.
What happened? Why is TPI gone? I simply couldn't keep my head
above water much longer the way things were going. TP] just grew up
too fast, [couldn't handle the load and needed to offload some work.
I tried it, but the person I hired failed to help. Then an old friend came
along, someone I've worked alongside before and this deal happened.
Will I be a part of Arkanix Labs? Right now I’m helping setup
everything the right way, the way it should have been done with TPI.
We havea staff now, so things will get done ona proper time schedule.
My main job with Arkanix Labs will be handling all the financial work,
something I do daily with my “real job”. Besides that I'll be handling
the legal end of the company.
But the best thing about having everything off my shoulders, now |
can get some programming done! For the last two years I've put
project after project off because of no time. Finally I get back to what
I do best on this C64!
August/September 1996
Anyway, I have explained everything, I think. Any questions about
anything can besent to meat the email address which follows. Feel free
to email anything, | like to chat!
Jon Mines
jon.mines@arkanixlabs.com
tpinfo@eskimo.com
Performance Peripherals, Inc. (PPI) Bows Out
CW writer Gaelyne Gasson recently reported that Performance Peripherals,
Inc., willno longer be servicing the Commodore market. Gasson confirmed
this in a phone conversation with PPI founder Peter Fiset, who stated that
the company is moving its focus to other projects. According to Gasson, PPI
willnolonger provide any support or repairs for their Commodore products,
and has ceased all manufacturing of these products. The company will
continue to sell products until present inventories are depleted.
SuperCPU Update
Initial reports from users on the compatibility, speed and usability of the
SuperCPU 64 have been positive. But like any new product of this level of
complexity, the first production run did find a few machines—specifically
Commodore 64's utilizing the Revision E board—that were too far out of
specification to allow for reliable operation. This number was extremely
small, though, accounting for only six units, with the first of these reported
by a user in Germany. CMD immediately investigated the situation, and
halted production until modifications to resolve the problems could be
developed and implemented.
What was discovered was that a small percentage of Commodore 64's
have incorrect relationship between the Dot Clock and the Phase 2 Clock.
The additional loading factor presented by adding the SuperCPU to these
machines, often already outfitted with REU’s and/or RAMLink devices, is
enough to create erratic operation with some of these machines. CMD was
able to resolve this problem by re-generating a proper Phase 2 Clock locally
on the SuperCPU. This modification has been incorporated into all new
production units, and no further reports of these problems have been
received since. SuperCPU users experiencing erratic operation should
contact CMD to arrange having their unit upgraded.
Meanwhile, CMD is continuing to work on the 128 version, the RAM
expansion card, the developer's package, and several other related projects.
However, no firm dates have been set at this time for release of these items.
%)
=e RR oo FF
CORRECTIONS
Issue 15, page 44, correct these lines for THE CHAOS GAME:
13@ FORI=1024T02023: POKEI,16:NEXT:REM SE
T COLOR (FOREGROUND*16+BACKGROUND)
155 Y=199:FOR X=@ TO 319:GOSUB 250:NEXT
250 B=8192 Y/8)*320+8* INT (X/8)+(Y AN
D 7):POKEB, PEEK(B)OR M(X AND 7): RETURN
Issue 15, page 45, correct these lines for FERN CHAOS:
Sg
=.5*W:X2=.57*W:X3=
-408*W:X4=.1075*
160 Y1=O*W: Y2=-.027*W: Y3=.0669*W:Y4=.2*W
25@ B=8192+INT(TY/8) *320+8* INT (TX/8) + (TY
AND 7): POKEB, PEEK(B)OR M(TX AND 7)
260 PRINT" {CLR/HOME}": POKE53265,27: POKES
Oe hanes
COMMODORE WORLD
Just For Starters
by Jason Compton
USEFUL ITEMS FOR THE USER PORT
Lately, we've tackled an introduction to input
devices and cartridge port expansion products.
Now it’s time to turn our focus to the cartridge
port's neighbor down the road, the user port. It’s
not the high-profile slot, to be sure. Nobody ever
puta game on the user port, all of the accelerators
live in the cartridge port, and even the multi-port
expanders aren't as clever for the user portas they
are for the cartridge port. Nevertheless, you can
do a lot of clever things with a C-64 user port.
Fora time, the user port was arguably the best
way to expand a C-64 or 128. In recent years, the
superior R&D has been done on cartridge port
peripherals, but there is still a wealth of good use
you can get out of your user port.
Modems
Perhaps the most obvious, and certainly one of
the earliest, user port expansions, there are a
number of modems out there which will plug
directly into the C-64’s user port. Commodore,
anda number of other companies produced 300,
1200, and 2400 baud modems to get 64 users into
the world of BBS's and online services. By today’s
standards, these modems will be slow and
outdated, but ina pinch they may come in handy.
RS-232 (Serial) Interfaces
As time progressed in the computer industry, a
numberof products, including modems andsome
printers, strongly adopted the PC industry
standard RS-232 serial port, found on PC clones
and Amigas. It began to make much more sense
for companies to build only one RS-232 version
of their product, rather than catering to the 64's
specific user port and serial bus. Not to be shut
out, 64 developers found a way to add an RS-232
COMMODORE WORLD
interface to the user port. Available both
commercially (the Aprotek COM-MODEM and
the Omnitronix Deluxe RS-232 Interface, among
others) and as a project outlined in Commodore
World #4, RS-232 interfaces open up a variety of
new hardware for the 64.
Keepin mind, however, that serial printers are
not as common as parallel printers (we'll get to
that in just a bit) and the user port—RS-232
interfaces are generally limited to 2400 baud
communication. Still, by the time 2400 baud
modems were affordable there were hardly any
companies willing to build them specifically for
the 64 (Aprotek is the only one that comes to
mind). With 2400 baud modems nearly worthless
in most people’s eyes and the RS-232 kit clocking
in well under $25, you could turn a 64 into an
exceptionally low-cost text terminal for about
$30 if you shop well.
You'll also get the ability to use null modems,
which were never constructed for the 64 user port
specifically. Null modems are devices that allow
you to hook up two machines directly to one
10
another via the serial port and transfer files and
datajustas one wouldifcallinga BBS witha “real”
modem. Without getting into more expensive
adapters that allow you to hook upa Commodore
drive to a different computer, this is often the
cheapest way to get data from a 64 into another
type of machine. Ifyou're looking for higher rates
ofspeed, you've put yourselfin SwiftLink territory
and will need the cartridge-based expansion.
In theory, a standard external MIDI interface
device could be plugged into such an RS-232
port, but I have yet to see any software that would
support a serial MIDI box.
Centronics Parallel (Printer)
Interfaces
Early in the game, printer manufacturers were
more than happy to build 64-specific models of
their products. But not many of these were
particularly good—many suffered from not
having true “descenders”, or letters such as “g”
which would drop below other letters. But when
users craved for more, they would often find that
there was simply not a 64-specific printer for
their needs. Are you surprised that someone, in
fact several someones, found a solution?
AgreatnumberofC-64 parallel interfaces have
emerged on the market. The parallel port
standard was established on the PC and is more
or less fully supported by Amiga computers.
(Maes, of course, have their own unique serial
bus and no parallel bus.) For a time, the most
popular of the parallel interfaces was the Xetec
Super Graphix and Super Graphix Jr. These
devices put the parallel printers on the 64's serial
(disk) bus, and they also had to draw power from
the 64's cassette port—not convenient if you, for
Issue 16
example, have a dongle currently residing there,
or are using a Datasette as a digitizer.
Enter the CMD geoCable II. It truly keeps the
“parallel” in “parallel bus” and takes the printers
away from the contested disk bus. The device is
remarkably straightforward. It consists exactly
of a circuit board, connectors at each end—one
female user port connector to plug into the 64
and another male user port connector to plug
other user port devices into for pass-through
purposes, a 25-pin parallel port connector that
faces sideways, and a large switch. That's all.
What it does, simply and elegantly, is turn
your user port intoa parallel port, allowing youto
plugin thestandard $3 cable that parallel printers
use and be up and running in no time, with or
without the specific GEOS drivers included. The
switch disables the parallel port and enables the
other user-port device currently plugged into the
pass-through connector.
EPROM Burning
For hardware hackers, EPROMs are wonderful
tools. AnumberofEPROM burners are available
for the 64, but many of them are cartridge port
devices. Datel manufactured the EPROMMER
64 to fit in the user port so as to avoid conflicts
with other devices you mightwantto keep resident
Paxtron|
CORPORATION
in your cartridge port. Not for the faint of heart,
but ifyou know your way around programmable
chips, here’s your device.
Voice Synthesis
While some were mightily impressed with the
SAM speech synthesis available for the 64 that
used only the built-in SID chip, others wanted to
do more. The Jameco Voice Synthesizer was
actually an external box that connected to the 64
via custom cable, with included software to drive
the unit. Just another example of what you can do
with a 64 if you put your mind and a little bit of
effort into it.
Currah Technologies built the Voice
Messenger, a device that just keeps popping up.
Its principle is roughly the same—it generates
speech from internal circuitry and speakers. The
heart of the unit is the EZ Speech software,
Video Digitization
Now we're talking. The big talk in the industry
is multimedia, and all the Microsoft ads like to
show you how much fun and productivity you
can have when you put video on your
computer. 64 peripherals did it a long time
ago. Devices known as Computereyes and
Video Byte allow you to “framegrab”, or
digitize single video images from a standard
source. While they can’t go so far as to offer
you the sort of accuracy available on more
expensive equipment, such as capturing a
single frame in real-time, they can “slow-scan”
images, such as an unmoving object or person
in front of a camera (or a rock-solid pause, as
found on laser dises and very, very good VCRs).
Since these were built in the day before
widespread support ofsome of the more clever
64 graphics modes was available, you'll be
looking at greyscale or colorized output given
the 64’s standard 16-color set restrictions. But
for greyscale images in particular, a good grab
is plenty good to get the point across.
These devices will save their pictures into
standard 64 file formats such as Koala. A real
coup would be a new driver—perhaps a GoDot
module—that could harness the greater color
depthavailable to clever programmers and exploit
thatfromascanner suchas these, or other devices.
Surely, this is not the final word on user port
expansion, but it is a broad sampling of the sorts
ofclever expansions thatare floating out there for
the 64. Keep your eyes open—you never know
when you'll have an opportunity to own your
very own video digitizing station.
Upgrade Chips
6510, 6526, 6567,6569, 6581, 6522,
8502, 8562, 8500, 8563, 8564, 8721,
8722, 325302, 390059, 251968 .. $8.95
901225, 901226, 901227, 906114PLA...$6.95
251715, 251913, 8580,WD1772 .. $10.95
314972-03 (C128 ROM Upgrade) .. $24.95
Motherboards
AGATE (PROMI) sissiacaisscescicccectes $14.95
154111 (NEW) uy
bd (NEW) ..
6 64 (untested, as is, all chips) . $17: 95
C-128 (NEW)
C-128-D (NEW)...
Diagnostics & Manuals
Commodore Diagnostician; Guide to
diagnose & fix C64/128/1541 .... $6.95
C128 Diagnostic Cartridge
and manual 5
Manuals: MPS 802 & 1230, 1084, 1902,
1581, 1526, 1571, 801, C64, C128 .. Call
We are now receiving manuals for all
Commodore products from SMG Call
i iv
1541) (Refurb:) csicisceisescscccccsssasese $44.50
154111 w/ P.S, (NEW)... .--. $69.95
157.1 (RRORUFD.), srerercccccssnsescsrsrersers $89.50
Paxtron
CORPORATION
August/September 1996
28 Grove Street
Spring Valley, NY 10977
Miscellaneous
C-64 Keyboard
1351 Commodore Mouse
Monitor Cables
Used Monitors (Low Prices)
1541/1571 Alignment Kit
1230 CBM Printer
1084S Motherboard w/ Flyback $79.95
1084S Power Supply Board (Refurb.) $29.95
C-64 Cabinet (Top/Bottom) $12.95
Commodore Joystick ..... :
256 x 1 (41256)
1541 Serial Cable
Video Cable
Verbatim 5.25 SS/DD Disks(10 Pak) . $1.99
Amiga A500 (Rev.3) NEW Motherboard
with all Chips
Pe
(All Power Supplies are NEW)
C-64 non-repairable
C-64 repairable
C-64 Heavy Duty (5.2 amps) i
C-128 Heavy Duty (5.2 Amps) .. $39.95
5.2 amps for Ram Expander Units $39.95
154111 external 110 volts
1581 external 110 volts ...
1084S Flyback (Phillips) ..
1084-D1 Flyback
1084 Flyback (Daewoo)
Str54041 for 1802C Monitor
ORDERS 800-595-5534 * 800-815-3241 »* 888-PAXTRON
Info 914-578-6522 * FAX 914-624-3239
11
‘CORPORATION |
* A500 Computer: Includes Power Supply and latest chips (eg:
Agnus, 2.04 O/S). Plus choice of following: Starter Kit, Discovery
Kit (incl. Kind Words, Deluxe Paint Il) or Deluxe Kit $149.95
CD32 MorHersoarp: Contains all chips(Lisa, Alice, Paula,
68020-16, ADV101) except the 512K memories
With all memory
Commopore C65 Motnersoaro: Contains all RAM operating at
3.5 MHz speed. Includes all chips (tested)
1084S Mortnersoaro with FiyBack TRANSFORMER: This new CBM
board will cure 90% of 1084S problems. Simply switch the PCB and
your monitor problems are solved! This motherboard with factory
mounted flyback, is the exact replacement and works with all 1084S
monitors. It is also very easy to install $79.95
Commopore 1976 Scientiric Catcutator: Save a piece of the
past. Brand new with charger and manual
C64 Emercency Diacnostic/Repair Kir: Each kit contains: 6526
CIA, fuse, 6581 SID, 6510 CPU, 906114 PLA, 6567 VIC, 901225
BASIC ROM, 901226 Character ROM and Commodore
Diagnostician ($70 Value)
C128/128-D Emercency Diacnostic/Repair Kir: Eachkitcontains:
6526 CIA, 8563/8564 80/40 column CRT Controllers, 390059-01
Character ROM, 8721 PLA, 8722 MMU, 6581 SID and Commodore
Diagnostician ($70 Value) $49.95
C64/128 Unity Cartrioce: 30 programming functions on one
plug-in cartridge
Hours: 9AM-5 PM EST We gladly accept:
Add $6.00 for UPS Charges Psa C=-] ss,
COMMODORE WORLD
Graphic Interpretation
While rereading the user’s manual of Creative
Micro Designs’ “Perfect Print LQ for GEOS,” a
statement in the introduction stood out to me:
“geoWriteis the most used application in GEOS.”
This holds quite true for myself—I used it daily
(and nightly) through college, and still use it to
create articles, calligraphy, resumes and
newsletters. Over the years numerous
programmers have invented different
applications, drivers and desk accessories that
can boost geoWrite’s capabilities, and some of
these may have never received much publicity
following QuantumLink’s demise in 1994. Thus
it seemed appropriate to make this the focus of
this issue’s geoSphere article. In this two-part
series, we will look at some tools and techniques
that can help make this great application work
even better for you!
For this series’ first part, we will look at
improving input: text, fonts, directories and
formatting. In the second part, printer output
and quality will be discussed.
Let's begin at. the beginning, before even
entering geoWrite. Do you have a mouse
configured as yourinput driver? Andifso, has the
uselessness of the right button ever made you
think, “wouldn't it be nice if only it worked?”
Good news—Andrew Milesk created an input
driver called simply “Doubleclicker” (version 2.0,
dated 2/4/90), It is a very effective alternative to
the 1351/1351(a) COM mouse driver. When
selected, it does what the name says: it double-
clicks with a single press of the right button, This
saves on wear and tear for the left button, and not
to sound like a George Reeves “Superman”
episode, but... you are able to leap into
applications with a single click... it’s a file, it’s a
driver, it's DOUBLE-CLICK! I myselfhave grown
COMMODORE WORLD
by Paw Sullivan
GEOWRITE DONE RIGHT
so accustomed to it that I look for that function
when using the computer at my workplace, and
that ultramodern IBM doesn't doit! You'll find it
a simple but handy feature to have.
Allright, now you enter geoWrite, and realize
that the font you need is tenth on the disk... nuts!
Yet another shortcoming of geoWrite is the
limited eight font accessibility. Now you have to
exit your file and do the usual font-switch tango...
or do you? Not if you get Payton W. Snider's
Fontswap 1.0, which I mentioned briefly lastissue.
Notto insult anyone's intelligence, but again, the
name says it all. This desk accessory is perfect for
disks with large numbers of fonts and a user
whose font choices vary with each new file. The
first nine fonts on the disk are listed. If there are
many more, they can be scrolled through one ata
time, or page by page. You may toggle any seven,
and when ready, select the melodramatic “DO
IT!" icon. And it'll do it.
Now, let's hypothesize. You are a third-year
college student and have over several dozen
geoWritefilesin your archives. The particular file
12
you want is lost somewhere on a disk with a very
large directory. But you need to find it quick! Let
Nate Fiedler’s 2k shareware jewel “FindFile”
(version 1.0, 8/1/91) look forit! First ofall, thisis
a desk accessory, so it can be used within any
application including geoWrite. Then it has a
very adept search function—enter the filename,
press RETURN, and it will list its deskTop
notepad’s page number and file location number
(1-6). Did you forget the file’s name? No
problem—the search function also uses wildcard
characters suchas the asterisk and question mark
to help with your search. For example, if you
enter “history *,” FindFile will list up to the first
nine files beginning with “history,” be it “history
American” to “history Zanzibarian” or even
“history: Zzzzzzz.” And with its “drive” option,
drives A, B, C (and D if you can configure it) can
beaccessed. Each time you press the drive button,
FindFile opens the next consecutive drive
available. Once you have this desk accessory,
you'll be able to sing, “it’s a small disk after all...”
Large directories can be very intimidating, and
even with such helpful tools as FindFile, it IS nice
to have files neatly arranged on disk.
Dir(ectory)Master version 1.0, by Kent L.
Smotherman, is a powerful 4K application that
can quickly arrange files in the order that you
desire. What is most remarkable about this gem
is its flexibility. The files can be categorically
arranged by alphabet, reverse alphabet, size, type
or date. What's more, you can toggle (select) all
files ona disk, orjusta few. The directory appears
vertically, and so all files can be easily seen and
selected. This means that even boot disks can be
neatened up—just remember to deselect the boot
files (they are rendered inoperative if they are
moved from their first positions on a disk.)
Issue 16
Through the years I have increased my font
library—some new onesI'd purchased from GEOS
FontPaksor others downloaded from Q-Linkjoined
older ones, But the occasion came when I needed a
very unique font—one for a “history of English
language” class. The font was named “LP.A.” for
the International Phonetic Alphabet. It was done
on Jim Collette’s Font Editor 2.2 (10/8/88), and if
you ever need to modify or create fonts, this is an
excellent tool to do it with. Months before my new
font was needed I'd received this application, not
knowing its capabilities. Once the program is
entered, you may either create a new font or adapt
one on the current drive. It enables the user to edit
thedesired font by displaying oneletter afteranother
on a large pixel map. Point/click to select a pixel,
and repeat to deselect. All modifications made to
the letter appear WYSIWYG on the left side of the
screen, You can therefore see how each letter will
appear with each pixel you add or remove, and
modify it accordingly.
It should be mentioned also that the Font
Utilities that come with Creative Micro Designs’
“Perfect Print LQ for GEOS” carry out a similar
function in that new fonts can be created.
Additionally the LQ fonts that result from those
utilities are then usable with the high resolution
Print System, which we will look at next issue.
Text file archives build up quickly over time,
and you will eventually need to browse through
some old writing samples. Sure enough, you
will find an old file that will pique your
curiosity, and upon opening it, it will upgrade
from 1.3 to 2.1. Then you notice it is in the
BSW font... and you'll wonder, WHICH font
was it originally in? Here is where Dennis N.
Seitz’s “Identifont 3.2” (2/7/89) can assist you.
Once selected, this application examines the
text file or even the disk of your choice and
determines the font(s) present. In the case of
an unrecognizable font, a “hex.” and “dec.”
number will be given.
Once your new file is done, your text is entered
and you want to be sure that you met the essay
requirements. Raymond A. Kerby’s Copy Editor
1.0 (5/5/89) will do the job admirably. This
application can run through a multi-page
geoWrite document in seconds and gives the
following data: total number of words in the
document, total number of sentences and long
words, average words per sentences, and a
reader's index (approximate reading level). Itisa
fast and easy way of getting a quality check on
finished writing.
Now, you have completed your text, with all
the needed fonts identified, swapped,
modified and or created. Itis the proper length,
and Copy Editor gives youa good review. Now
I would like to direct you to Rick Krantz’s
Toolkit 1.2 (12/20/88) which is a file
formatting wonder-worker. You know those
LOOOOOONG documents that need every
page to get a new font, different margins...
takes some time without good help, doesn’t
it? Toolkit can perform entire document
formatting at the touch of a button. Select
“edit” mode, and the chosen file will be put
into 40-column mode. “Print” puts the file
into 80 column mode, and nicely adds
paragraph indentations and one-inch margins
ateach “return.” “Combine” can join two Write
files together for more convenient printing,
and “all fonts” will put the document into the
font that is stored in the existing text scrap.
These and other features make the Toolkit a
must-have, and makes the finishing touch very
quick indeed!
Voila! Your geoWrite file is now printer ready,
and in less time than usual. Now for the next
step—output improvement. In the next edition
of geoSphere, we will look at some fonts, printer
drivers and applications that will make even a
nine pin dot matrix put out first rate material!
%)
AMIGA
Repairs ¢ Upgrades ¢ Sales
e Sell ¢ Trade Amiga Hardware
64 USERS SPECIALS 128 USERS
5.25 SS/DD RECYCLED FLOPPY DISKS $49 CASE
5.25 DS/DD RECYCLED FLOPPY DISKS $59 CASE
CASE IS 1000 DISKS « ADD $11 S&H PER CASE
1200 BPS MODEMS 10/329 + $6 S&H
Integrated Teknologies Inc
1101 Chestnut St * Suite A ¢ Roselle * NJ 07203
FON 908 245-1313 FAX 908 245-9409
Hours Mon & Fri 1 - 6 PM Wed 1 - 8 PM
TECH STAR COMPUTER CENTER
(206) 251-9040
We'll repair your Commodore.
Seruing the Commodore community dince 1984.
REFURBISHED SPECIALS
1541......$69.00
1541 II...$79.00
1571......$89.00
$CALL
C64 & 1541 $120.00
64C & 1541 II....140.00
C128 & 1571
128D
$79.00
$89.00
$59.00
M R
1701 $119.00
1702 $119.00
1802 $119.00
1080 $159.00
1084 $159.00
1084S $159.00
CMONO...$ 29.00
MONO......8 59.00
1525
1526
SG10
Star 15X
MPS 803
DPS 1101....$99.00 OKI 10
OKI 20 $79.00
$59.00
$69.00
$79.00
$89.00
$99.00
$69.00
Don’t forget to notify
COMMODORE WORLD!
Please call or write with your change of
address 6 to 8 weeks prior to your move so
that you won't miss a single issue!
CW Adaress Change, P.O. Box 646,
E. Longmeadow, MA 01028
413-525-0023
MISC.
Power supplies, cables, ribbons, paper, disks, cartridges, programs
new and used, books, magazines, accessories.
August/September 1996 13 COMMODORE WORLD
by Sherry Preedline
In the time since our first installment, I've found
a few items to share with you. The most exciting
itemis the 4k Demo Contest sponsored by Driven
magazine. This recent competition closed on July
1, 1996. Each entry was limited to one file of no
more than $1000 bytes (4K), must be executable
with the BASIC RUN command and, and had to
be NTSC C-64 compatible. The prize was simply
that of knowing your demo won the contest.
Witha contest of this nature the creators have the
fun of participating in the contest, while the demo
fans gain valuable additions to their demo
collections, Competitions such as this help keep
the scene alive.
Secondly, [stumbled across another magazine
during one of my surfing expeditions. The
magazine was produced by FOE (Forces of Evil)
and is known as Coder’s World. Three issues
have been released, and the magazine is done in
the style ofa demo—similar to Driven magazine
but with a different focus. Coder’s World was
introduced to the demo scene to provide the
Commodore Community with a valuable
reference guide for creating demos. [have enjoyed
viewing demos for many years and the thought of
learning how to create my own demo has crossed
my mind many times—Coder's World provides
folks such as myself with the tools to get started,
The most recentrelease of Coder's World, issue
3, contains articles demonstrating how to code
1x2 scrolls, character animation, playing music
behind BASIC, logo swings, sprite scrolls, text
fades, and more. Additionally, they've included
an article on how to add class to your demos as
well as revealing a few of their own machine
language tips and tricks. Issue 3 also contains
example programs demonstrating each of the
routines explored within the issue.
I think Coder's World was long overdue, anda
very welcome addition to the demo scene. |
applaud FOE (made up of The Phantom and
Wrong Way) for their efforts and support.
However, a word of warning is necessary due to
the presence of some profanity in each issue of
Coder’s World, But, aside from that, it’s a
worthwhile read. Currently, FOE is working on
an all new magazine called Solutions, Thanks
FOE!
One more item I'd like to relay before moving
along to the reviewsis that of the explosion of demo
sites on the Internet. | remember last year looking
high and low in order to find “active” FTP
Commodore demo sites. Ifyou haven't been on the
net lately, you'll be surprised at the number of
places now available to satisfy all those demo urges.
Almost every Commodore Demo group now has
their own web page. From these web pages you can
learn the history of the group, download their
demos, and even view screen shots straight from
their demos. The best feature ofall is the creativity
of their pages. Of course this can’t yet be seen with
a Commodore 64, We've always known these
groups were creative, but now we get to see a whole
new side of their creativity! Located elsewhere in
this article you'll finda sidebar listing demo groups
possessing their own web pages. So, while you're
waiting forthat next demotobereleased, takesome
time to check out their sites. You'll be amazed at
what you'll find!
Now it’s finally time to move ahead to a few
reviews. This issue’s classic demos are Trap and
Max Headroom. This issue’s new soon-to-be
classic demos are Digital Magic and Dawnfall.
Trap Tony Crowthers and Ben
Daglish Driven
The1986demo,Trap,isademo _ Electron
of many names. You may also ce
know it as the Space Movie or apg
the Drummer Boy. The demo Style
opens with a view of what looks
like a native preparing to play a
drum. In the upper right hand
Bonzai
corner is a movie screen where —_ Camelot
themajorityofthedemo'saction —_ Chalice
takes place. Loin Shao
1 entarer tlimnabive’ Equinoxe
map ec scarey, f yenativein Extend
the lower right hand corner Fairlight
begins to play hisdrumandthe —_ Light
movie begins. As the demo scan
moves along, you're treated toa padua
visit fromanastronaut(ofcourse Triad
he's beamed down from his spaceship), a
holographic style flashing face, and visits from
other spaceships.
The whole demo lasts for more than eight
minutes! All this comes from an amazingly small
file of 43 blocks! At the end of the demo's movie
are scrolling credits just like what you'd see at the
real theater.
The demo's music reminds one of the movie
2001, creating an appropriate atmosphere for
the space movie. Trap is a classic because it
demonstrates all that can be done with the
Commodore 64 andit does itwell. Andremember,
this was still very early in the Commodore Demo
NTSC Demo Group Web Pages
http://soho.ios.com/~coolhnd
http//soho.ios.com/~coolhnd/tron.htm
http:/Awww.cl.ais.net/wrongway/
http://hack.lakeheadu.ca/~revenge/
http://www. earthcom,.net/~pegasus/rpg/
http//test.dev-com.com/~interconnection/Style
Waveform/Millenium
http://marie.az.com/~waveform
PAL Demo Group Web Pages
http://chrom.imbg.ku.dk/sshbin/bonzai, htm!
http:/www.diku.dk/students/slammer/
http:/www.nada.kth.se/~d95-she/chalice
http://www. inf.bme.hu/~mre/
http://rphet physik.uni-regensburg.de/~pem03049/eqx
http:/Avww.lut.fi/~pora/extend/
http://www.ludd.luth.se/~watchman/fairlight/
httpy/www.hh.se/stud/d94fa/lightlight.htm!
http://login.nord.eunet.no/~scroll/msp.htm
http://www-und,ida.liu.se/~q95henra/
http://www.obh.snafu.de/~poing/padua/
http:/www.df.Ith.se/~triad/Triad_Home.html
era. Trap was definitely a demo well ahead of its
time. Even back then folks knew the Commodore
64 would be capable of more than we could have
ever dreamed,
Max Headroom Brian Stephenson
Next on my list of classics is the 1986 Max
Headroom demo.
This demo is only partially famous because of
Max Headroom. The main reason I've added it to
my collection is because of the fantastic art work
contained within this demo. The demo features
no music, just a screen sized picture of Max
opening and closing his mouth, But, the graphics
are so well done that you may forget you are
looking at a Commodore 64 screen.
After this demo was released, there were a few
more Max Headroom demos appearing on the
scene, Most memorable of them is the Max
Headroom Swings demo in which smaller
renditions of Max are accompanied by music.
Hmmm... I wonder if Max knows he’s a
Commodore Classic?
Dawnfall by OXYRON
Dawnfall is an extraordinary demo production
resulting from the Party 95 demo competition,
Throughout the entire demo one can’t help but
Wh
N\\
\\"
\\
a
ZZ
notice the professional quality in which it is
presented. The demo is contained solely within
one file and moves along without any required
interaction from the viewer.
August/September 1996
Dawnfall’s introductory screen reveals the
letters of “Dawnfall” tumbling down upon an
eclipse bearing a triangular Oxyron symbol. The
letters then explode off into oblivion and the
screen fades into the next portion of the
introduction. Next the video type presentation
zoomsinand out onascrolling Oxyron landscape.
While you're busy marveling over the display,
eerie music will hold you in suspense leading you
to wonder what's in store for you next.
Naturally, now it’s time for the opening demo
credits. | loved the manner in which they are
presented. The screen flashes and the names
appear in large letters on your display until all the
personsinvolved have been introduced. It’s pretty
hard to explain, but believe me, when you see it,
you'll realize that it definitely adds to the overall
professional quality of Dawnfall.
Now the fun begins as you are treated to a
variety of three dimensional texture mapping
routines. Included are a rotating chess board, a
green, yellow and blue lattice design, a 3-D
rotating upscroller and a few other items. The
3—D effects and the texture mapping are
stunning! You'll easily forget that the graphics
are displayed on a flat screen.
After the routines have decided they've truly
astonished you, the music comes to a dead stop
and the word “End” is flashed onto the screen.
The music starts up again and, as in any normal
video production, the end credits, thank you's
and greetings roll up your screen. Behind the
credits a plotter is hard at work holding your
attention by designing a variety of shapes.
The demo ends with a teaser enticing you to
find hidden pictures within the demo. To date I
have found two of them. But, I've been told there
are a total of three hidden pictures. The pictures
are accessed by pressing a key or a combination
of keys at the beginning, middle, and end of the
demo, Unfortunately, Graham of Oxyron has
asked me not to reveal the secrets. Are the secrets
worth pursuing? Definitely!
Kudos to Oxyron, Jeff and Biz Kid of Camelot,
and Sire of Lego for providing the Commodore
Demoscenewithsuchahigh quality presentation—
I hope we see more from them soon!
Digital Magic hy FOF
FOE has really started 1996 off with a bang.
Besides the above-mentioned Coder’s World
magazines, they have released three very
impressive demos: S.E.T. (Smoke Exploration
Tool), CAT (Copper Analysis Thingy), and, of
course, Digital Magic. Each of these demos are so
impressive that I had a very tough time selecting
which one to review, And, just because I've
selected Digital Magic, it doesn’t mean the other
15
twoaren't worthy of your time. Ifyou fail to check
them out, you'll be missing some very valuable
additions to your collection!
Digital Magic is what the demo world calls a
“mega-demo”. It contains nine whole screens of
graphics and music for you to enjoy! I'm going to
highlight two of my favorites.
My first favorite display is on Digital Magic's
fourth screen. FOE treats us to a page featuring
eight sinus’ waving through the screen. These
sines place a total of 8,192 items on the screen!
The colors are black and blue and leave the viewer
in a nice relaxed state of mind. Of course, the
whole mega-demo features outstanding music in
addition to the cool graphic routines.
My other favorite screen is on page six of the
demo. This page is known as Subliminal Colors.
Here thecreators, The Phantomand Wrong Way,
have embedded the FOE logo into two animated
color displays—one each the bottom and top
halves of the screen, At first they may be hard to
see. But keep looking because they are definitely
there. It’s a really cool effect that I haven't seen
used in the past.
Toreach each page of Digital Magic, you must
press the space bar. What's unique about Digital
Magic is that, first of all, the title page appears
again each time you load a new page. Secondly,
Digital Magic appears to be never ending due to
the fact that once you've reached the final page it
starts the demo over again.
Asfaras the other screens go, I'll leave them for
you toexplore. Because, afterall, part of the fun of
demos are the surprises contained within!
In Conclusion...
Before wrapping up this issue, I'd like to thank
the members of FOE and Oxyron for taking the
time to answer all my many questions while
researching their respective demos. Also, I'd like
to announce that all the demos reviewed here in
Commodore World Magazine can be found on
my web page: hittp://Avww.lm.com/~ql/.
That's it for this issue! See you next time!
»
COMMODORE WORLD
Commodore 64
When you first start to learn about computers,
it’s only natural to compare how a computer
“thinks” with how people do. As you learn more,
you tend to stop making such comparisons
because you come to realize that far from the
literal, dumb servants they're often pictured as in
movies, computers are completely different from
people both in how they operate and the kinds of
problems they can solve.
Butit’s still fascinating to compare a computer
to a human brain. Researchers are beginning to
discover principles which may explain how the
brain works, and while much of this research is
extremely complicated and requires
large,expensive computers, your Commodore 64
can be programmed in BASIC to mimic one
fundamental part of brain function, pattern
recognition, In doing this, your computer is not
only doing something the brain does (and your
reaction may be “I didn’t know a computer could
do that!”), it’s doing it the brain's way—by
simulating the neurons (brain cells) with which
you think.
Computer Storage and Human Memory
First, let’s compare what the word “memory”
means in a computer as opposed to a human
being. A computer memory is really a huge
collection of pigeonholes into which numbers
are stuffed. If you want to store something that
On a
by John Walher
isn’tanumber, suchasa piece of text, a picture, or
a sequence of musical notes, you first have to
convert it to numbers, then put those numbers
into the pigeonholes of the computer's memory.
Machine language programming is just
translating the instructions for solving a problem
into numbers the computer can remember. A
computer stores numbers.
Human memory is richer and much more
complicated, What comes to mind when you
look at the picture in Figure 1? Even though this
picture is nothing more than 63 straight black
lines on a white piece of paper, your brain
immediately recognizes it as a sleeping cat. You
can even imagine how a real cat would look if
seen from other angles. The human brain seems
to store and recall patterns. These patterns don't
have to be pictures. You can recall pieces of music
from only a few notes of the melody, think of
words that rhyme with “frog” or that end with
“ple”, and quickly name the American presidents
that have the same names as automobiles.
It isn’t that human memory is better or worse
than computer memory, but rather that they are
entirely different things. Some computer
scientists prefer the term “storage” to “memory”
because it more accurately describes what the
computer does. Ifyou walk up to a computer and
ask it “what is the name of the famous bridge in
the same state as Disneyland” you won't have
Neural
Network
much success, but most people will immediately
answer, “The Golden Gate Bridge”. On the other
hand, if you try to memorize a list of 20,000 two
digit numbers, you probably won't succeed, yet a
Commodore 64 can do this in less than a second
and not make a single mistake. That computer
and human memory are so different isn’t all that
surprising when you consider how differently
constructed are the brain and a computer.
What Brains Are Made Of
The portion of the brain believed responsible
for thought and memory consists primarily of
nerve cells, or neurons. Each neuron has three
parts, dendrites, a cell body, and an axon. The
dendrites connect to the axons of other neurons.
When these other neurons are stimulated, the
dendrites convey the signal to the cell body via a
synapse or connection, which either excites or
inhibits the neuron (with a different strength for
each synapse). When the excitation sufficiently
outweighs inhibition, the neuron “fires”. This
sends a signal down its axon which in turn excites
or inhibits other neurons, and perhaps causes a
muscle to move.
Because neurons primarily connect to other
neurons they form networks of great complexity.
Figure 3 shows two fields of five neurons each, in
which each neuron connects to every neuron in
the other field. In this simple case we have 10
neurons with 5 connections (or synapses) each,
fora total of 50 synapses. Now consider the brain.
Researchers believe that the brain contains
between ten anda hundred billion neurons, each
of which connects to anywhere from a thousand
to a hundred thousand other neurons, forming
atleast ten trillion connections, and probably far
more, Compare this to the read-write memory of
the Commodore 64, which is made up of about a
quarter million transistors, and remember that
each transistor is only aswitch—far simpler than
a neuron,
The Brain Simulator
Ten billion neurons, ten trillion connections:
does it make sense to talk about simulating the
brain on a computer? Can we make a computer
recognize patterns the way a brain does?
Remarkably, we can. A simple program can
simulate the behavior of a network of
interconnected neurons. You can show this
program patterns and it will remember them.
Then if you show it a similar pattern, it will find
the pattern it has learned that is most like the
pattern itis being shown. The technical name for
thisisan “associative memory”, so called because
itrecallsitems based on similarity, like the brain,
as opposed to location, like a computer.
The Brain Simulator is written in BASIC for the
64 and 128 (in 64 mode). When you've finished
typing in the program, save a copy to tape or
disk. To run the program, simply load it and type
RUN. You'll see two blank windows on_ the
screen. Below them is a legend that explains the
action of the function keys. When you type a
letter or number, the dot pattern for that symbol
appears in the left window. Try typing a few
letters and numbers to see how this works. When
you start the program, it doesn’t know any
patterns—so we'll teach it some. To learn a
pattern, place it in the left window by pressing
the key forthe letter ornumberandthen press F1.
The program trains its simulated neurons to
memorize the pattern (this takes about 30
seconds). READY reappears on the screen when
the pattern has been learned. Go ahead and teach
the program three different-looking letters, “A”,
“T”,and “Z”,
Now let’s try recalling a pattern. Press the “A”
key to place an A in the left window. Now press
F3—this introduces errors in the pattern by
randomly changing about 10% of the dots in the
pattern each time you pressit. After you press F3,
you'll havea pattern that looks something like an
A, but doesn’t exactly match what we taught the
program. Press FS to start the recall process. The
pattern is run back and forth through the neuron
network until it stabilizes on a fixed pattern (an
August/September 1996
Figure 1
arrow in the middle of the screen shows the
direction of the transfer). After the neuron
network has “thought” about the problem for a
few cycles, you'll probably get back the original A
we taught the program (just like the brain, this
process doesn’talways remember the right thing;
if the random changes made the pattern more
like another pattern the program has learned,
that one will be found instead).
Try entering T and Z, creating errors in them
by pressing F3 one or two times, and recalling
with F5, Note how the neuron network almost
always recalls the correct pattern even though
you've given it something quite different from
what it learned. Enter “I” and try recalling with
FS. The network recognizes this as T because I
looks more like T than A or Z, the other patterns
it has learned. This is what your brain does when
it sees a pattern of lines and immediately thinks
of a sleeping cat. Many researchers think the
basic process the brain uses is much the same as
the one used by this program,
You can make the program forget everything
it has learned by pressing F4. Ifyou press F'6, the
program exits to BASIC. When you leave the
program everything it has learned is forgotten,
but you can save learned patterns on the disk by
pressing F7 and entering a file name. The next
time you run the program you can reload the
program's memory by pressing F8 and entering
the same file name.
Figure 2
A Neuron
Dendrites
17
How it Works
The remarkable thing about this program is that
it doesn’t “know” it’s recognizing letters and
numbers. As far as the program is concerned, it
could be learning phrases of music, combinations
of medical symptoms, or pictures of animals.
The program simulates two fields of neurons
with the arrays F1% and F2%, and displays these
fields in the two windows on the screen. When
you type a letter or number, the dot pattern for
that symbol is read from the character ROM and
stored in F1%. Lighted dots are stored as 1 and
background dots as -1. The character patterns
Figure 3
Field 1
Field 2
are 6 dots wide by 7 dots high, so F1% and F2%
both hold 42 numbers.
Each neuron ina field potentially connects to
every neuron in the other field. Each connection,
which is equivalent to a synapse in the brain,
has, its own weight: positive to excite, negative to
inhibit, and zero if there is no connection. These
weights are stored in the 42x42 matrix M%, fora
total of 1,764 connections. To learna pattern, we
form a matrix from the pattern in F1% and add it
to the weight matrix M% (see lines 1020-1060 in
the program). To recall a pattern we take the
pattern in F1% and multiply it by the weight
matrix (lines 1410-1480). Ifthe value is 1 ormore,
we place a 1 in that position of F2%; if it’s
negative, we store a -1 there. If the value is zero,
we leave the value in F2% alone. Then we take the
COMMODORE WORLD
value in F2% and multiply it back through the
matrix, but swapping rows and columns, and
store it back into F1% (lines 1540-1610). We keep
this up until the pattern in F1% stops changing.
That's our final value, the pattern we've recalled
from the network.
Limits of Learning
The number of different patterns a neuron
network can learn is determined by the number
of neurons and connections. This very small
network can learn only 2 or 3 distinct patterns
before it begins to get confused. Ifyou try to teach
it 4 or 5 patterns, it will often recall the wrong
pattern, or even a spurious pattern you never
taughtit. That’s where the enormous complexity
of the brain comes in; your brain has at least five
billion times as many connections as this little
13 rem screen configuration
2@ poke 53280,@
3@ poke 53281,0
4@ print "{CLEAR/HOME}
5@ open 15,8,15
6 rem variable
70 dim
80 dim v%,j,i
90 rem initialise
10@ print
11@ print
ciative memory"
l print
print
print
screen
"{CLEAR/HOME}"
"{HOME} {1
"fl - teach
Ph Ph
to
dump
forget
recall
x
4
7 ee
Do
p
Ulm WwW
PA Ph
rin
D print
200 print
210 print
22% print
23 print "“é @-9:
240 rl = 4 a:
250 rl = 4s el = 25
26% gosub 75@
270 gosub 860
280 gosub 970: .
quit"
disc
disc
290 get é 4 if soe goto
AOA 1h Ar in 1d
300 g > J/Osprinct {10
310 }
320 if ="@"anda$<="9"thenk
®
330 if $ < A S > *%
"fetch
34® gosub 97@:print
35@ 1%=@
360 k=(k-64) *8+53248
37@ poke56333,127:poke
380
390 poke “Epes or
49@ for ‘s = A to 6
410 k (494@08+i)/2
420 5
COMMODORE WORLD
Geclarations
£1%(42),£2%(42) ,m%(42,42)
"{4 SPACES)neuron network asso
CRSR DN}";
pattern(5
matrix"
randomize pattern ";
all’
pattern{4
save({9
loadg"
load pattern"
gosub 600
gosub 600
ready {
eCDarDpe)\ a
SPACES }
2" then
1,peek(1)and251
fori=@to6:poke49408+i,peek (k+i):
4:poke
program, so your ability to learn and remember
is correspondingly greater.
But like a singing dog, it’s not how well it sings
but the factit sings at all. With less than 250 lines
of BASIC, we can make the Commodore 64 play
the brain’s game, pattern recognition, the brain’s
way, by simulating a neuron network, It can
learn simply by being shown patterns and recall
a similar pattern when shown something it’s
never seen before. Research into neuron networks
isoneofthemost exciting and rapidly expanding
fields in science today, bringing together
computer science, psychology, mathematics, and
biology to discover how the brain accomplishes
the remarkable things it does. This research may
lead to computers that can recognize faces,
understand speech, and answer complicated
questions. But more importantly, we may find
430
440
450
460
470 next
480
490
500
510
520
530
540
550
560
570
580
590
600
610
620
6 3@
640
6 50
660
670
680
690
700
71@ poke
720 poke
4 SPACES 2 730 r
2990 74@O ret
750
760
77
780
79
BOO
SPACES)"
Pho rh rh Ph Ph Ph Ph et
SPACES}
fox
SPACES}";
next
=k+64:got
50@
"sas
poke
next
next
next
$6333,129
gosub
rem dispatch
J $= -asc(a$)-132
VE R=]
3%=5
j{%=2
j}%=6
j%=3
j%=7
j$=4
j%=8
to chat
poke = Vv, east
answers to questions as old as mankind: “What
is thought?”, “What is memory?”, and “How do
people reason?”. That your home computer can
help you understand and experiment with such
matters is testimony to the power latent within it.
For Further Information
This article only scratches the surface of the topic
of neuron networks and associative memory. If
you're interested in learning more, the following
article and book are a good way to start:
Kosko, B., “Constructing an Associative
Memory”. Byte, September 1987.
Rumelhart, A.,and McClelland, J., eds., Parallel
Distributed Processing (two volumes), MIT
Press, 1986.
©)
goto 280
function key commands
75@ : gosub 860
then
then
then
then
then
then
then
then
199%: goto
1080: goto
121@:goto
168@:goto
L29@: goto z
"">;closel5:end
L8@@:goto I9@
199@:goto 90
gosub
gosub
gosub
gosub
gosub
print
gosub
gosub
-1+(i*8))+cl
-3*i)
=l to 8
poke ‘ve, 67
|
poke v+9,11@+(15*i)
next i
for w=. to 7
V=1024+4@* (r1+i)+cl
v,93
v+9,93
1024+40* (1+5) +6
452
elerti
1% (1%) =1lthenpokevt+ (8-3) ,81
to 7
:gotos
vt+(8-j),32
return
rem update
1%=0
18
field £1% on
screen
Issue 16
for i= @to 6 next 3
V$=1024+40* (1+5) +26 vt=sgn(v%)
for j=2 to 7 ) Lfv%<>@andv$<>£1% (i) thenf1%(i)=v%:c
1%$=1%4+1
if £2%(1%)=1 then poke v%+(8-j),81:9 next j
940 20 gosub 75@
poke v%+(8-j) ,32 3@ if c%<>@ goto 1380
next j 1 poke p%,asc(" ")
next i poke p%+l,asc(" ")
return ] poke p%+2,asc(" ")
rem position to status area 7@ return
print “({HOME}{22 CRSR DN}"; ) rem forget all - clear memory
return 5 gosub 97@:print “forget”
rem train on pattern in f1% 710®@ for i=l to 42
gosub 97@:print "training" £1%(i)=0
for i = 1 tod? 20 £2%(1i)=0
Lox. 7 =ol itord2 5 for j=l. te 42
ms (i,j) =m%(i,j)+£1%(i)*£1% (5) m%(i,j)=@
next j next j
next i 76@ next i
return 7®@ gosub 750
rem print part of matrix gosub 860
print "{CLEAR/HOME}"; return
for i=l to 24 rem save state to disc file
for j=1 to 39 dD gosub 97@:print “save”
ifm%(i,j)<@thenprint "";:gotol114@ print "{CLEAR/HOME}";
prink ©"; input "file name: ";a$
print chr$(asc("@")+abs (m%(i,j3))); D aS="@QO:"+aS+",5,w"
next j 5@ open 5,8,5,a$
print 9M for i=1 to 42:print#5, £1%(1i) :next
next i ‘ gosub 2240
print “press any key to continue:"; for i=1 to 42:print#5,f2%(i):next
get a$ : if aS="" goto 1190 gosub 2240
return for i=1 to 42
rem randomise 10 percent of f1% for j=1 to 42
gosub 970:print "random" 29 print#5,m%$(i,j)
For i=1 ito: 42 3@ next j
if rnd(@) > @.1 then 1260 gosub 2240
£1%(i)=-£1%(i) 1 next i
next i close 5
gosub 75@ print wees
return return
rem recall from pattern rem restore state from disc file
gosub 97@:print "recall" gosub 97@:print "restore"
pt=1024+40*9+19 210 print "“{CLEAR/HOME}";
rem initially copy fl to £2 202 input "file name: "“;a$
poke p%+l,asc("=") aS="@O:"+a$+",s,r"
for i=l to: 42 2 p%=asc ("m")
£2%(i)=£1%(i) 2 gosub 2246
next i 206% open 5,8,5,a$
gosub 860 7@ for i=l to 42
rem fl to £2 pass input#5,£1%(i)
poke p%,asc("=") next i
poke p%+2,asc(">") gosub 2240
for j=1 to 42 2 dD for i=l to 42
vt=O 2120 input#5,£2%(i)
for’ i=1 to42 2 next i
VB=VB+E£E1% (i) *ms (i,j) 214@ gosub 2240
next i 2 for L=1. te: 42
v%=sgn (v%) for j=l to 42
if v%<>@ then £2%(j)=v% input #5,mS(i,j)
next j 2 next j
gosub 860 19® gosub 2246
rem £2 to fl pass 2200 next i
ct=0 22 close 5
poke p%,asc("<") 2220 return
poke p%+2,asc("=") 223® rem disc error check
for i=l to 42 224® input#15,en,em$,et,es
vt=0 2250 if en>@then print en,em$,et,es:stop
for’ j=1 \to.42 2260 return
vS=vb+£2% (5) *m% (i,j)
August/September 1996 19 COMMODORE WORLD
fter programming in 6502 machine language for over a decade, |
was getting a bit BORED. One can only code the same routines with
the same opcodes so many times before the nausea of repetition
becomes overpowering. When I heard the news that CMD was building a
cartridge based on a 20 MHz 65816 I was overjoyed. For years I've heard
those with 65816 based systems brag about its capabilities. To us old 6502
programmers, the opportunity to program the fabled 65816 is a new lease
on life.
The 65816 is an 8-/16-bit register selectable upgrade to the 6502 series
processor. With 24 bit addressing of up to 16 Megabytes of RAM, the
powerful 65816 is a logical upgrade that leaves 6502 programmers feeling
right at home. It is amazing how fast one can adapt to the new processor.
It sounds funny to say it, but the only difficulty I have had learning the
65816 is that there are so many options and choices to complete the same
task, that it is hard to decide which method is best.
To get started programming the 65816, I would recommend purchasing
the book, “Programming the 65816” from The Western Design Center,
manufacturer of the 65816. While it is a bit pricey, the sheer quality and
content of the 600 page book is worth the money. Rarely, ifever, has there
been a CPU manual as thorough and detailed as the Western Design book.
Ifyou know 6502 assembly, then Programming the 65816 is probably the
only 65816 book you will ever need.
Getting a Feel for the Modes
The 65816 may be operated in Native mode or 6502 Emulation mode.
Emulation modeisa 100% 6502 compatible mode where the whole processor
looks and feels like a vintage 6502. Native mode offers 8- or 16-bit user
registers and full access to 24-bit addressing.
While in emulation mode, not only are all the 6502 opcodes present in
their virgin form, but the new 65816 instructions are also available for
usage. In fact, the first lesson to learn about programming the 65816 is that
emulation mode is much more powerful than a stock 6502. The only true
difference between emulation modeand our venerable C64’s 65 10 processor
is that unimplemented opcodes will not produce the results expected on
the former. Since all 256 of the potential opcodes are now implemented on
the 65816, older C64 software that uses previously unimplemented opcodes
will produce erratic results.
To select between emulation and native modes, a new phantom hidden
emulation bit (E) was added to the status register. Shown in programming
models hanging on top of the Carry bit, the emulation bit is only accessible
by one instruction. The new instruction (XCE) exchanges the status of the
Carry bit and Emulation bit. To move to emulation mode, set the carry and
issue an XCE instruction, To move to native mode, clear the carry and issue
the XCE instruction.
My, How Your Index Registers Have Grown!
While in native mode there are two new directly accessible bits present
in the status register. The 65816 implements new hardware interrupt
vectors which include a new hardware BRK vector in ROM; therefore,
the old BRK bit of the status register is no longer needed. The BRK bit
is replaced with the X bit to select either 8- or 16-bit index registers,
The former empty bit 5 is now filled with the M bit to specify the
accumulator and memory access as 8- or 16-bit.
August/September 1996
21
Two new instructions are used to clear or set bits within the status
register. The SEP instruction sets bits, and REP clears bits. SEP and REP use
aone byte immediate addressing mode operand to specify which bits are to
be set or cleared. For example, to set the X bit for 8 bit user registers:
SEP #%00010000 ; set bit 4 for 8-bit index
; registers.
Or to clear bit 4:
REP #%00010000 ; clear bit 4 for 16-bit index
; registers.
When in 8 bit mode, the index registers perform their function in
standard 6502 form. When status bit X is set to 0, both the X and Y index
registers become 16 bits wide. With a 16-bit index register you can now
reach out to a full 64K with the various indexed addressing modes. An
absolute load to an index register in 16-bit mode will retrieve 2 bytes of
memory—the one at the effective address and the one at the effective
address plus one. Simple things like INX or DEY work on a full 16 bits,
which means you no longer have to specify a memory location for various
counters, and loops based on index counters can now be coded in a more
efficient manner.
The formerly empty status register bit 5 is now referred to as bit M. Mis
used to specify an 8- or 16-bit wide accumulator and memory accesses.
When in 8 bit mode, (M=1), the high order 8 bits are still accessible by
exchanging the low and high bytes with a XBA instruction—itis like having
twoaccumulators! I lowever; when set fora full 16-bit wide accumulator, all
math and accumulator oriented logical instructions operate on all 16 bits!
Ifyou add up the clock cycles and bytes required to perform a standard two
byte addition, you can start to see the true power of 16-bit registers.
More Register Improvements
Zero Page has now been renamed to Direct Page—corporate thinking, go
figure. A new processor register D was added to allow Direct Page to be
moved anywhere within the first 64K of memory. The direct page register
is 16 bits wide, so you can now specify the start of direct page at any byte.
Several old instructions now include direct page addressing as well. To
move direct page, just push the new value onto the stack (16 bits) and then
PLD to pull it into the direct page register. You may also transfer the value
from the 16-bit accumulator to the direct page register with the TCD
instruction, Direct page may also be moved while in emulation mode.
While in native mode, the stack pointer is a full 16 bits wide, which
means the stack is no longer limited to just 256 bytes. It can be moved
anywhere within the first 64K of memory (although while in emulation
mode, the stack is located at page one). There are several new addressing
modes that can use the stack pointer as a quasi-index register to access
memory. Numerous new push and pullinstructions allow youto manipulate
thestack. A few ofthe more useful stack instructions useful to programmers,
are the new instructions to push & pull index registers with PHX/PHY and
PLX/PLY.
Two other new processor registers are the Program Bank Register (PBR)
and the Data Bank Register (DBR). The Program Bank Register can be
COMMODORE WORLD
thought ofas extending the program counter out to 24 bits. Although you
can JSR and JMP to routines located in other RAM banks, individual
routines on the 65816 still must run within a single bank of 64K—there's
no automatic rollover from one bank of RAM to the next when executing
successive instructions. In this sense, it may help to think of the 65816
processor asa marriage of Commodore's C128 Memory Management Unit
(MMU) and an ‘enhanced’ 6502—a very similar concept.
The Data Bank Register is used to reach out to any address within the 16
megabyte address space of the 65816. When any of the addressing modes
that specify a 16-bit address are used, the Data Bank byte is appended to the
instruction address. This allows access to all 16 megabytes without having
to resort to 24-bit addressing instruction, and helps enable code that can
operate from any bank.
New Addressing Modes
Thereareninenewaddressing modes on the 658 16. Several newinstructions
are designed to help create relocatable code that can execute at any address.
65816 Native Mode
The use of relocatable code on the 6502 was extremely limited. With 16
megabytes of address space, writing relocatable code increases the overall
utility of the program. To write relocatable code, several new instructions
use Program Counter Relative Long addressing. This allows relative
branching within a64K bank of RAM. There’salso Stack Relative addressing,
anda push instruction to place the program counter onto the stack, so that
a code fragment can pull it back off and can instantly know its execution
address,
Another new feature are two Block Move instructions, one for forward
MVP and one for backward MVN. Simply load the 16-bit X register with
the starting address, the Y index register with the ending address, the
accumulator with the number of bytes to move, and issue the MVP or MVN
instructions. MVN is for move negative, and MVP is for move positive, so
that your moves don’toverwrite themselves. Block Moves use two operand
bytes: one for the source bank of 64K and one for the destination bank.
Memory is moved at the rate of seven clock cycles per byte.
Several new addressing modes are used to access the full address space.
A 65816 assembler would decode “long” addressing given this input:
Programming Model
Processor is in Native (65816) mode when
Processor Status flag e = 0
z 0
16
Accumulator A is 16-bit when
Processor Status flag m = 0 ACCUMULATOR MSB (8) ACCUMULATOR LSB (A)
(8-bit if m = 1)
DATA BANK REGISTER (DBR)
Index Registers are 16-bit when XINGES HEGISTER'(X)
Processor Status flag x = 0
(8-bit if x = 1)
PROGRAM BANK REGISTER (PBR)
Y INDEX REGISTER (Y)
DIRECT PAGE REGISTER (D)
STACK POINTER (S)
PROGRAM COUNTER (PC)
PROCESSOR STATUS REGISTER (P)
Native Mode Options
While in Native Mode, the m flag controls the size
of Accumulator A and most Memory operations,
while the x flag controls the size of the X and Y
Index Registers. This provides 4 different
configuration possibilities, as charted below, The
REP and SEP instructions are used in combination
to switch configurations
m AJM xy
16-bit 16-bit
16-bit = 8-bit
Instructions
REP #$30
REP #$20
SEP #$10
REP #$10
SEP #$20
SEP #$30
8-bit 16-bit
8-bit 8-bit
It is important to note that the m flag will control
the size of all operations dealing with memory
except in operations involving the X and Y Index
Registers (CPX, CPY, LOX, LDY, STX and STY)
where the x flag controls the size.
COMMODORE WORLD
22
— Emulation 0 = Native Mode
Note: To switch to Emulation mode,
sot carry with SEC, then use XCE to
exchange the c and @ flags.
1 = Carry
1 = Result Zero
1 = Disabled
1 = Decimal, 0 = Binary
1 = 8-bit, 0 = 16-bit
1 = 8-bit, O = 16-bit
1 = Overflow
1 = Negative
IRQ Disable
Decimal Mode
Index Register Select
Memory/Accumulator Select
Overflow
Negative
Issue 16
LDA S0445F2 ; load byte from $45F2 of
; bank 4
RAM
LDA
$03412F,x ;
; plus x.
load byte from $412F of
Quite a few instructions have been given new addressing modes. How
many times have you wanted to do this:
LDA ($12) ; load indirect without an
; offse
Or how about a table of routine addresses:
JSR ($1234,x) ; jump to a subroutine via
; indexed indirect addressing!
Other fun new instructions:
TXY,TYX Transfer directly between index registers
BRA Branch always regardless of status bits
TSB Test and set any bit of a byte
TRB Test and reset (clear) any bit of a byte
INC A/DEC A_ Increment or decrement the accumulator directly
STZ Store a zero to any byte
Summing Up
As you cansee, the 65816 opens up a whole new world of programming—
it feels like a new lease on life. Of course, it’s going to take some time to
learn the new processor. But while the 20 MHz speed is a nice perk, |
believe that the real power of CMD’s new peripheral is indeed the engine
under its hood: the 65816—a super CPU!
%)
65816 Emulation Mode Programming Model
Processor is in Emulation (6502) mode when
Processor Status flag e = 1 (power-on default)
Processor is in Emulation mode
DATA BANK REGISTER (DBR)
Accumulator A is 8-bit when {
Processor is in Emulation mode
7 0
X INDEX REGISTER (xX)
Index Registers are 8-bit when
Emulation Notes
While in Emulation Mode, Accumulator Ais forced
to 8-bit mode. You can, however, access the
upper 8 bits with instructions that specify
Accumulator B, and all 16 bits at once with
instructions that specify Accumulator C, The X
and Y Index Registers are also forced to 8-bit
mode, with no means available to access the
upper 8 bits. To further assist in compatibility, the
Stack is forced to Page 1 of Bank 0. The Direct
Page Register (D) is fully functional in this mode,
allowing direct page to be placed anywhere in
Bank 0. Likewise, the Program Bank Register
(PBR) and Data Bank Register (DBR) are also
fully functional. While it would seem that these
latter Items would allow programs to operate from
any bank in Emulation mode, there are some
caveats; interrupts will force the program bank to
zero without saving the PBR first, and RTI won't
attempt to restore the bank. Therefore, Native
mode would be recommended to execute
programs in other banks.
August/September 1996
23
Y INDEX REGISTER (Y)
—— Emulation 1 = Emulation Mode
Note: To switch to Native mode, clear
carry with CLC, then use XCE to
exchange the c and e flags,
Carry
Zero
IRQ Disable
Decimal Mode
Break Instruction
1 = Carry
1 = Result Zero
1 = Disabled
1 = Decimal, 0 = Binary
1 = Break caused
Interrupt
1 = Overflow
1 = Negative
Overflow
Negative
COMMODORE WORLD
Guide to 6502/65C02/65816 Instructions
Assembler Example HEX Addressing Mode 02 C02 816 Bytes Cycles
ADC Add With Carry [Flags affected: n.v,z,c]
ADC (dp,X) 61 DP Indexed Indirect,X Vv ¥
ADC sr,S Stack Relative /
ADC dp Direct Page
ADC [dp] DP Indirect Long
ADC #const Immediate
ADC addr Absolute
ADC long Absolute Long
ADC (dp), Y DP Indirect Indexed, Y
ADC (dp) DP Indirect
ADC (sr,S),Y SR Indirect Indexed, Y
ADC dp,X DP Indexed,X
ADC [dp], ¥ OP Indirect Long Indexed, Y
ADC adary Absolute Indexed, Y
ADC adar,X 7D Absolute Indexed,X
ADC long,X 7F Absolute Long Indexed,X
<
eu Us es
3
2 SO A Gi
<—
V
Vv
PWOWONMNNNNAWANNMMNMM
AND (dp,X)
AND sr,S
AND dp
AND [dp]
AND #const
AND addr
AND long
AND (dp), Y
AND (dp)
AND (srS),Y
AND dp,X
AND [dp], Y
AND adar,Y
AND adar,X
AND /ong,X
DP Indexed Indirect,X
Stack Relative
Direct Page
DP Indirect Long
Immediate
Absolute
Absolute Long
OP Indirect Indexed, Y
DP Indirect
SR Indirect Indexed, Y
OP Indexed,X
DP Indirect Long Indexed, Y
39 Absolute Indexed, Y
3D Absolute Indexed,X
3F Absolute Long Indexed,X
PEE POS
“a.
a i a a an
i a a.
ASL dp
ASLA
ASL addr
06 Direct Page
OA Accumulator
OE Absolute
ASL dp,X 16 DP Indexed,X
ASL adadr,X 1E Absolute Indexed,X
BCC Branch if Carry Clear [Flags affected: none] (Alias: BLT]
BCC nearlabel 90 Program Counter Relative
BCS Branch if Carry Set [Flags affected: none] (Alias: BGE]
BCS nearlabel BO Program Counter Relative Vv Vv VY 2 278
BEQ Branch if Equal (Flags affected: none]
BEQ nearlabel FO Program Counter Relative VY VY Vv 2 278
BIT Test Bits [Flags affected: z (immediate mode) n,v,z (non-immediate modes)]
| y j
BIT dp
BIT addr
BIT dp,X
VON: (2° 2%
24 Direct Page
2C Absolute
34 DP Indexed,x
BIT adar,X 3C Absolute Indexed,X
BIT #const 89 Immediate
BMI = Branch if Minus [Flags affected: none]
BMI nearlabel 30 Program CounterRelative ¥Y v¥ Vv 2 278
BNE Branch if Not Equal (Flags affected: none}
BNE nearlabel DO Program Counter Relative VN EN Seg ote
BPL nearlabel 10 Program CounterRelative ¥ ¥ v¥ 2 278
BRA Branch Always (Flags affected: none]
BRA nearlabel 80 Program Counter Relative Vv 2 3
BRK 00 Stack/Interrupt Ree nf Al ne 18878.
BVC Branch if Overtiow Clear [Flags affected: none]
BVC nearlabel 50 Program Counter Relative VV Vv Vv 2 278
BVS Branch if Overflow Set [Flags affected: none]
BVS nearlabel 70 Program Counter Relative ¥ ¥ YY 2 278
N
Vv
i
Nv
V
Vf
Vv
COMMODORE WORLD
24
CMP (dp,X) C1 DP Indexed Indirect,X Vv
CMP sr,S C3 Stack Relative
CMP dp C5 Direct Page
CMP [dp] C7 DP Indirect Long
CMP #const C9 Immediate
CMP addr CD Absolute
CMP long CF Absolute Long
CMP (dp), Y D1 DP Indirect Indexed, Y
CMP (dp) D2 DP Indirect
CMP (sr,S),Y D3 SR Indirect Indexed, Y
CMP dp,X D5 DP Indexed,x
CMP [dp], Y D7 DP Indirect Long Indexed, Y
CMP agar,Y D9 Absolute Indexed, Y
CMP adar,X DD Absolute Indexed,X bette
CMP long,X DF Absolute Long Indexed,X ;
COP Co-Processor Enable (Flags atfected: d, i)
COP const 02 Stack/Interrupt Vi GeReT
CPX Compare Index Register X with Memory [Flags affected: n,z,c}
7 ]
CPX #const EO Immediate
CPX dp E4 Direct Page Viotny,
CPX addr EC Absolute V ov
CPY Compare Index Register Y with Memory [Flags affected: n,z,c]
j
v
CPY #const CO Immediate VV pte are
CPY dp C4 Direct Page YN Nim 2 5g2to
CPY addr CC Absolute VY VV v¥ 8 410
DEC Decrement (Flags affected: n,z]
DEC A 3A Accumulator Vy
DEC dp C6 Direct Page
DEC adar CE Absolute
DEC dp,X D6 DP Indexed,X
DEC adar,X DE Absolute Indexed,X VN oN
1 Vy
: Vv
EOR (dp,X) 41 DP Indexed Indirect,Xx vv
EOR sr,S 43 Stack Relative
EOR dp 45 Direct Page
EOR [dp] 47 DP Indirect Long
EOR #const 49 Immediate
EOR adar 4D Absolute
EOR long 4F Absolute Long
EOR (dp), Y 51 DP Indirect Indexed, Y
EOR (dp) 52 DP Indirect
EOR (sr,S),Y 53 SR Indirect Indexed, Y
EOR dp,X 55 DP Indexed,xX
EOR [dp], Y 57 DP Indirect Long Indexed, Y
EOR adary 59 Absolute Indexed, Y
EOR adar,X 5D Absolute Indexed,X
EOR /ong,X 5F Absolute Long Indexed,X
INC Increment (Flags affected: n,z]
INCA 1A Accumulator
INC dp E6 Direct Page
INC addr EE Absolute
INC dp,X F6 DP Indexed,x
INC ador,X FE Absolute indexed,X
a
FPOWNMNNNNLANNMNNDN
v
}
Vv
-
N
N
SWWNNNNMNMSOMMMMl
44 eee
Issue 16
Assembler Example HEX Addressing Mode 02 C02 816 Bytes Cycles Assembier Example HEX Addressing Mode 02 C02 816 Bytes Cycles
PEI Push Effective Indirect Address [Flags affected: none]
PEI (dp) D4 Stack (DP Indirect) V2 ¢
uN pics ue acon vv y : : PER label 62 Stack (PC Relative Long) Vv 3 6
ey AR RES es veel Pet
JMP (adar,X) 7C Absolute Indexed Indirect Nov : PHA 48 Stack (Push) 5 ES en es ee
f
UME aad DG Absolute Indirect Long 4 PHB Push Data Bank Register (Flags affected: none}
JSR Jump to Subroutine [Flags affected: none] (Alias: JSL for Absolute Long)
PHB 8B Stack (Push) Nios S
JSR addr 20 Absolute ORS De PRR Pa
JSR long 22 Ab sbibte Long Sek : 4 8 PHD Push Direct Page Register [Flags affected: none]
JSR (addr,X) FC Absolute Indexed Indirect Vo 3008 PHD OB Stack (Push) Ne A
LDA Load Accumulator from Memory (Flags affected: n,z} PHK Push Program Bank Register [Flags affected: none]
LDA (dp,X) A1 DP Indexed Indirect,X VN VN Vv 2 62 PHK 4B Stack (Push) Vie eteets
LDA srS A3 Stack Relative VY 2 4
LDA dp A5 Direct Page ¥ V¥ VN 2 39%
LDA [dp} A7 DP Indirect Long V 2 6
LDA #const AQ Immediate Vv v¥ Vv 22!
LDA ador AD Absolute vv v 3 4!
LDA long AF Absolute Long N° 4.5}
LDA (dp), Y B1 DP Indirect Indexed, Y VN VvV VN 2 5123
LDA (dp) B2 DP Indirect VY Vv 2 512
LDA (sr,8),Y B3 SR Indirect Indexed, Y Nini One 74
LDA dp,X B5 DP Indexed,X VV VV 2 4'2
LDA [dp], Y B7 DP Indirect Long Indexed, Y NV 2 6!2
LDA adar,Y B9 Absolute Indexed, Y y y 3 4i8 PLA 68 Stack (Pull) NNR eat
13
EEA RES: ee abeaure Ung mensieecs 2 was
aE Sees Tn
PLD Pull Direct Page Register {Flags affected: n,z]
LDX #const A2 |Immediate Vie NbN
LDX dp A6 Direct Page v Visi N ee ge PLD 2B Stack (Pull) syctea Wi}
J t
ae soy aS areas y y y y : i PLP Pull Processor Status Register (Flags affected: n,z]
LDX adar,Y BE Absolute Indexed, Y VY Vv v¥ 3 481 PLP 28 Stack (Pull) VEN NE ed:
LDY #const AO Immediate
LDY dp A4 Direct Page
LDY adar AC Absolute
LDY dp,X B4 DP Indexed,x . PLY 7A Stack (Pull) VIN aa
LDY addnx BO’ Absolute Indexed, x REP Reset Processor Status Bits [Flags affected: all except b per operand]
LSR Logical Shift Memory or Accumulator Right (Flags affected: n,z,c] REP #const G2 Immediate Y 2 3
ben cp an resol nis J y ‘ 1 2 ROL Rotate Memory or Accumulator Left [Flags affected: n,z,c]
LSR addr 4E Absolute N) ONY AN. GiR'6s ROL dp 26 Direct Page ne ee ;
LSR dp,X 56 DP Indexed,X Vv v¥ 2 6 ROLA 2A Accumulator 5 a as es
LSR adar,X 5E Absolute Indexed,X ROL addr 2E Absolute Vy y 3 6
2 ROL dp,X 36 DP Indexed,X Nini BA
MVN_ Block Move Negative [Flags affected: none] (Registers: X,Y,C} ROL addr.X 3E Absolute Indexed,X ,
3
MVN srebk.destbk 54" Block Move . Noro Ea ROR Aotate Memory or Accumulator Right [Flags affected: n,z,c}
MVP Block Move Positive (Flags affected: none] (Registers: X,Y,C] ROR dp 66 Direct Page 7
MVN srcbk,destbk 44 BlockMove NGES AI? RORA 6A Accumulator \
; ROR addr 6E Absolute ViiN Ne 3.68
NOP _ No Operation [Flags affected: none] ROR dp,X 76 DP Indexed,X etal Sal’ Pont eas
NOP EA Implied NN MeN nA 2: ROR adar,X 7E Absolute Indexed,X V vq
ORA OR Accumulator with Memory (Flags affected: n,z} RTI = Return from Interrupt [Flags affected: all except b]
ORA (dp,X) 01 DP Indexed Indirect,X Vv Vv , 2 6! RTI 40 Stack (RTI) ALS Sa SUSE
lati ’
BEA ae ee hae Rece that me is a 2 RTL Return from Subroutine Long (Flags affected: none}
ORA [dp] 07 DP Indirect Long y 2. 6'2 RTL 6B Stack (RTL) SPSS
i} | 17 1
SA vila Ae spunea Nae ‘ A ri RTS Return from Subroutine [Flags affected: none]
ORA /ong OF Absolute Long 2 CASES RTS 60 Stack (RTS) 0 es a PES ST:
U j 12.3
cae py i Be joie: Indexed, Y V y y S 2 2 SBC Subtract with Borrow from Accumulator (Flags affected: n,v,z,c]
ORA (sr,S),¥ 13 SR Indirect Indexed, Y Vie os 7s SBC (dp,X) E1 DP Indexed Indirect,X |
ORA dp,X 15 DP Indexed,X VY V¥ Vv 2 4% SBC sr,S E3 Stack Relative N
ORA [ap], Y 17 DP Indirect Long Indexed, Y Vic oanO SBC dp E5 Direct Page NieN ey
ORA adar,Y 19 Absolute Indexed, Y NEON) Vin 31a 410 SBC [dp} E7 DP Indirect Long : v
ORA adar,X 1D Absolute Indexed,X Vv Vv 3 48 SBC #const ES Immediate Vv WV
ORA long,X 1F Absolute Long Indexed,X Ni ge 5! SBC addr ED Absolute Vv 4 3 4t
SBC long EF Absolute Long
August/September 1996 25 COMMODORE WORLD
SBC (dp),Y F1 DP Indirect Indexed, Y VE NGN SQ TAX Transfer Accumulator to Index Register X [Flags affected: n,z]
SBC (dp) F2 DP Indirect AX AA Implied ATA,
A
SBC (sr,S),Y F3 SR Indirect Indexed, Y
F5 DP Indexed,X
F7 DP Indirect Long Indexed, Y
F9 Absolute Indexed, Y
FD Absolute Indexed,X
SBC dp,X
SBC [dp], Y
SBC adar,Y
SBC adar,X
TAY — Transfer Accumulator to Index Register Y (Flags affected: n,z]
T A8 Implied Ape [ian aa
TCD Transfer 16-bit Accumulator to Direct Page Register [Flags affected; n,z}
24242444
SBC /ong,X FF Absolute Long Indexed,X
SEC _ Set Carry Flag [Flags affected: c) TCS Transfer 16-bit Accumulator to Stack Pointer (Flags affected: none]
aT
YY
—_
Te!
2
12
Cat ae:
S 38 Implied Vv 2 TCS 1B Implied Vv
SED Set Decimal Flag [Flags affected: d] — TDC Transfer Direct Page Register to 16-bit Accumulator [Flags affected: n,z]
5 F8 Implied Nios 2 DC 7B Implied \
Vv oN 2
S 3
V
TRB dp 14 Direct Page Vv v2) 5%
EC i 1
ED i v 1
SEI __ Set interrupt Disable Flag (Flags affected: i) TRB Test and Reset Memory Bits Against Accumulator (Flags affected: 2}
SEI 78 Implied 1
SEP Set Processor Status Bits [Flags affected: all except b per operand] TRB addr 1C Absolute 2 Nopen' lor foes)
EP i 2
V
STA Store Accumulator to Memory [Flags affected: none] TSB dp 04 Direct Page QI St
V
TSB addr OC Absolute A ee Bir 68
TSC Transfer Stack Pointer to 16-bit Accumulator [Flags affected: n,z]
TSC 3B Implied 1
}
Vv
J
Vv
E2 Immediate V TSB Test and Set Memory Bits Against Accumulator (Flags affected: z]
v
{
STA (dp,X) 81
STA sr,S
STA dp
STA [dp]
STA addr
STA long
STA (dp), Y
STA (dp)
STA (sr,S),Y
STA dp,X
DP Indexed Indirect,X
Stack Relative ot
Direct Page N
DP Indirect Long ‘
Absolute v
Absolute Long
DP Indirect Indexed, Y v
DP Indirect ;
SR Indirect Indexed, Y
DP Indexed, X
STA [dp], Y DP Indirect Long Indexed, Y
TXA Transfer Index Register X to Accumulator [Flags affected: n,z]
STA adadr,Y Absolute Indexed, Y
2
TSX = Transfer Stack Pointer to Index Register X (Flags affected: n,z}
TSX BA Implied 2
TXA 8A Implied 2
TXS Transfer Index Register X to Stack Pointer [Flags affected: none]
STA addr,.X 9D Absolute Indexed, x 3 , =
2
2
Fe a ES Se EE ,
SFOWNNNNNSONNMNND
V
2 is aie
No oN Yv
TX 9A Implied eS
STA long,X 9F Absolute Long Indexed,X TXY Transfer Index Register X to Index Register Y (Flags affected: n,z]
STP Stop Processor (Flags affected: none] TXY 9B Implied Vv
STP DB Implied TSE TYA Transfer Index Register Y to Accumulator (Flags affected: n,z]
STX Store Index Register X to Memory [Flags affected: none] TYA 98 Implied Nov Vv
| y :n,
8E Absolute j y ;
96 DP Indexed,Y v TYX BB’ Implied y 2
WAI Wait for Interrupt [Flags affected: none]
WAI CB Implied Vv 3's
WDM Reserved for Future Expansion (Flags affected: none (subject to change)]
WDM 42 nla N28 n/até
XBA_ Exchange B and A 8-bit Accumulators (Flags affected: n,z]
y
Vv
86 Direct Page TYX Transfer Index Register Y to Index Register X [Flags affected: n,z]
84 Direct Page N
8C Absolute N
94 DP Indexed,X N
1
1
1
1
1
1
1
1
64 Direct Page
74 DP Indexed,X
9C Absolute
9E Absolute Indexed,X
XBA EB Implied 3
XCE Exchange Carry and Emulation Flags (Flags affected: m,b/x,c,e]
XCE FB Implied Wa
STZ addr,X
‘Add 1 cycie if m=0 (16-bit memory/accumulator)
*Add 1 cycle if low byte of Direct Page Register is non-zero
“Add 1 cycle if adding index crosses a page boundary
‘Add 1 cycle if 65C02 and d=1 (65C02 in decimal mode)
“Add 2 cycles if m=0 (16-bit memory/accumulator)
®Subtract 1 cycle if 65C02 and no page boundary crossed
“Add 1 cycle if branch is taken
®Add 1 cycle if branch taken crosses page boundary on 6502,
65C02, or 65816’s 6502 emulation mode (e=1)
°*Add 1 cycle for 65816 native mode (e=0)
Add 1 cycle if x=0 (16-bit index registers)
"Add 1 cycle if 65C02
"°6502: Yields incorrect results if low byte of operand is SFF
(i.e., operand is $xxFF)
COMMODORE WORLD
26
‘87 cycles per byte moved
SUses 3 cycles to shut the processor down: additional cycles
are required by reset to restart it
"Uses 3 cycles to shut the processor down: additional cycles
are required by interrupt to restart it
‘°Byte and cycle counts subject to change in future processors
which expand WDM into 2-byte opcode portions of instruc-
tions of varying lengths
Add 1 byte if m=0 (16-bit memory/accumulator)
"’Opcode is 1 byte, but program counter value pushed onto
stack is incremented by 2 allowing for optional signature byte
"Add 1 byte if x=0 (16-bit index registers)
Issue 16
<vV
<#
ty
Leen,
HEP HEHEHE HEHE Hee eet
Se te te At Be BE SE SE SE SE TS OTE AE BE tt te tH
++
ts
+
.
.
+
t
.
*
.
.
.
.
*
.
t
.
.
.
.
*
*
.
.
.
*
*
#
#
=
#
#
#
#
#t
a
#
#
#
#
#
#
#
#
#
#
ft
#
#
My
#
#
#
vy
tt
#
#
a
#
#
#
#
v
a
#
a
v
v
#
MH
=
CBM 1660 (300 baud modem)
Serial Cables 3'
Midwest Micro 64 Terminal
S501
BP Pro Joystick
CBM Datasette (1530)
California Games
C64 Graphics with COMAL
Commodore 64 Fun & Games
Commodore 64 Games
Computer Monsters
Computer Olympics
Computer Space Adventures
Computes 1st Book/C64
Computes 1st Book/C64 Games
Computes 2nd Book of C64
EPYX Programmers Basic Toolkit
Dictionary of Computer Terms
GEOS - Inside and Out
Instant Activities For Your C64
Jet: 82 New Adventures
Machine Language For Beginners
Mapping the Commodore 64
Micro Adventures #3 Million
DollarGamble
Pilgrim in the Micro-World
Programming the Commodore 64
Write Your Own (Adv.Graphics
Haunted House)
Write Your Own (Synthesizer)
Alice in Wonderland
Arcade Game Construction Kit
Ardok the Barbarian
Arkanoid
Arkanoid Il, Revenge of DOH
Artic Fox
Awardware
Bank Street Filer
Batman
Batman - The Caped Crusader
Beyond Castle Wolfenstein
Bits, Pieces & Clues
Blood Money
Bubble Bobble
Captain Commando Challenge
Card Sharks
Cauldron
Cave of the Word Wizard
Caveman UGH-lympics
Championship Golf
Chernobyl - Nuclear Plant Simul.
Chomp
Clowning Around
Commodore Basic Programming
Concentration
Cut Throats
Double Dragon II - The Revenge
F-15 Strike Eagle
Fairlight
Family Feud
Fast Tracks
Feud
Final Conflict
Frankie Goes To Hollywood
Frogger
Fun House
Gauntlet
Ghostbusters
Grand Prix Circuit
Guerilla
Hangman Roulette
Hardball
Heartland
August/September 1996
DOS Cat € eC Pah © 2 DP evVeehaas H 2 6 8 8 1) Oeawe ew ee 8 8 ee REE ES 8 fe ee wee: & Ce tap © © ee-S TE OnE: @ EE
n
strrtrtBeeBeeet—
RBereeei Pee -<-FBteiSsSBeeiBsBeBTtTBTBTeBeBseBseseseiKeFBTsssesweeiB,ersTtTsrrewseweetsteiisBPee fete Bee
retrst >
CMD’* 2nd Annual
Warehouse Sale
Surplus Inventory Must Go by October
i seco
Helicopter Emergency Rescue
Operation
High Roller
Invaders of the Lost Tomb
Jeopardy
Jeopardy (Junior Edition)
Jingle Disk - Holiday Card Maker
Jordan vs, Bird
Jumpman
Karate Chop
Ken Uston's Professional Blackjack
King Cribbage
Kings of the Beach
Kung Fu Il, Sticks of Death
Label Maker
Lords of Conquest
Main Frame
Maniac Mansion
Math Blaster
Maxwell Manor
Mean Streets
Realm of Impossibility
Mini Putt
Monday Night Football
Monkey Business
Murder By The Dozen
Night Mission Pinball
Operation Wolf
PHM Pegasus
Pinball Construction Kit
Pole Position
Powerplay Hockey - USA vs. USSR
Predator
Presidential Campaign
Remote Control
Renegade
Sargon Il
Sky Fox
Snooper Troops Case#2
Snow Strike
Speedball
Stationfall
Summer Games II
Super Huey
Super Password
Swiss Family Robinson
Tag Team Wrestling
Take Down
The Artist
The Home Manager
The Money Manager
The President Is Missing
The Sentry
The Seven Cities of Gold
The Three Stooges V2
The Wizard of Oz
The Writer
Thud Ridge
Total Eclipse
Trilogy
Typing Tutor III
War in Middle Earth
Wheel of Fortune
Wheel of Fortune 2nd Edition
Where in the World is Carmen
Sandiego
Win, Lose or Draw 2nd Edition
Word Writer
Word Writer 3
World Games
Zenji
nrTr TS TPREeBe ttn
Atlantis
Congo Bongo
Gort
Omega Race
Pirates Cove
Practicale 20
Sargon II Chess
The Sky !s Falling
Tutankam
Master Type 64 (Edu)
Popeye
Lazarian
Omega Race
Se.0c
Abacus - Anatomy of the 1541
Abacus - C128 Basic Training Guide
Abacus - C128 C.A.D.
Abacus - Ideas for use on C64
Abacus - Science & Engineering/64
Abacus - Tricks and Tips for C-64
Data Manager 2
Intro to Basic/ Part!
Intro to Programming 1
Music Construction Set
Navy Seals
Panorama
Print Power
Printed Word & Calc
Programming Kit #3
Swift Calc
Word Writer 4
Delta Drawing (Edu)
coe FF SC Ce CEE SC OO EEA AA H— AHA
<<< tt Ue tH TD 3 te
Pe ee a a a
22
i
1541 Disk Drive (For Parts Only)
Amtech (71) w/out PS (Parts Only)
Epyx Fastload Cart.
FSD-2 no PS. (For Parts Only)
M3 Mouse
Mach 5 Cart.
Navarone Port Expander
AcroJet
Airborn Ranger
Atomino
Ballistix
Blood Money
Dr.T’s Midi Librarian (4 OP)
Or.T's Midi Librarian (CZ Rider)
Or.T's Midi Librarian (OX Heaven)
Flight Simulator Il Scenery Disk #1
Flight Simulator Il Scenery Disk #5
Main Frame
Menace
Rings of Medusa
Rings of Medusa
Silent Service
Skate or Die
Ultima V (disks only)
8k Ram Cartridge
15
1571 Drive Head Assembly
1700 REU (128K)
Aprotek Minimodem C (1200)
Cardco G-wiz
Datashare
CadPak 128
Flight Simulator I!
Home Designs (Cad for 128)
Where in the USA is Carmen
Sandiego
Partner 64 Cartridge
COMMODORE WORLD
30, 1996
Lecenp
(6) weed (\) new (@) Printer intertace (0) 64 Printer
(*) Game (t) Productivity 64 () Productivity 128
(<) Misc. Hware (1) Drive (%) Centronics Printer
Cardco G+
Xetec Supergraphics, Jr.
Data Manager 128
Swift Cale 128
Sylvia Porter's Personal
Finance 128
Word Writer 128
Blue Chip / Protecto
Micro R&D MW-350
Star Gemini 10X
Votalker (Speech Synthesizer)
Xetec Super Graphics Jr.
Accounting Series (Payables)
Accounting Series (Receivable)
Accounting Series (Invent. Cntr!)
Accounting Series (Invoicing)
CBM 1526
MPS-801
MPS-802
MPS-803
Seikosha SP-1000VC
Animation Station & Design Pad
Voice Messenger w/Easy Speech
& Intelligent Talking Terminal
Vizastar 128 (SS,dB, Graphics)
Vizawrite 128 (WP)
Amtech RF512C (71 clone)w/ PS
Enhancer 2000 w/ PS(41 Clone)
Epson FxX-85 $40.00
Okimate 10 $40.00
Okimate 20 $40.00
Okimate 20 (Centronics)
Laser 190E (Epson 9 Pin)
MPS-1000 w/out Tractor
ESBS As MARCEE
50 - 5.25" DSDD Disks in
Storage Case $20.00
25 - 5.25 DSDD Disks in
Storage Case $12.00
1670 modem (1200 baud) $14.00
FSD-2 Drive (1541) w/ PS $50.00
MPS-1000 w/ Tractor $55.00
Okidata 120 $60.00
1701/1702 Color Monitor $79.00
Star NX-1000C $75.00
RAMLink 1MB (Rev.1) $149.00
CMD HD-100 Hard Drive $239.00
ING
Minimum total order $20.00. No product will bo
held awaiting check/MO, Woe suggest payment
by major Credit Card (MC/Visa/Disc./Amox)
Allitems have been tested and are guarranteed
to work upon delivery. CMD will warranty above
merchandise for 10 days. Defects may be
roturned for replacement or merchandise credit
only with prior authorization, No Retunds,
Shipping Cont. US only:Printers $10.00; Drives
$8,50; Monitors $20.00. All other products will
be shipped based on the shipping chart found
in our main ad elsewhere in this magazine.
<V
A
AASCACOCOT7A
a
HD-170, 170 MB ( pec! lo
HD-500, 500+ MB (Special Edition) .
HD-1000, 1 GB (Special Edition) .
HD-2000, 2 GB (Special Edition) .
FD-2000 (800K and 1.6 MB) ..
FD Real-Time-Clock Option/Ki
Box of 10, High Density Disks (1.6MB) .
Box of 10, aoe Density Disks (3.2 MB) ..
; “WiifyDos
(Specily computer serial number and drive model)
JittyDOS C64/SX-64 System .. . $39.
JiffyDOS C-128/128-D System
Additional Drive ROM's ..
$14.
. $29.00
80-column Monitors (Refurb
Action-Replay Cartridge
Aprotok 3-Way User Port Expander
Aprotek User Port Extension Cable
C-64 Computer (Refurb, w/JD) .
C-64C Computer (Refurb, w/JD)
C-64/64C Power Supply (Repairable) $39.00
C-64/64C Heavy Duty Power Supply (Repairable) ni 95
128-D Computer w/ Int. 1571 (Refurb, w/JD) we CAL
C-128 Computer (Refurb, w/JD) ..
C-128 Computer (Refurb, w/JD, no PS)
C-128 Power Supply (Repairable)
Cannon BJC-4100 Color Bubble Jet Printer
Commodore 1541 Disk Drives (Refurb, w/JD)
Commodore 1541-1! Disk Drive (Refurb, w/JD)
Commodore 1571 Disk Drive (Refurb, w/ JD)
Commodore 1702 40-column Monitor (Refurb) .......
Commodore 1802 40-column Monitor (Refurb)
CMD EX2+1 3-Port Cartridge Port Expander ..
CMD EX 3-Port Cartridge Port Expander
CMD Gamepad/Joystick Controller ...
CMD GeoCabie II Print Cable 6ft./15ft
CMD SmartMouse (1351 Compatible Mouse) ..
CMD SmartTrack (1351 al Trackball)
Inkwell Light Pen Model 1700 ....... .
Monitor Cables CALL
Mouse Pad... » $2.95
MW-350 Printer Interface (OK/8K Buffer) $49. Oays60. 00
Panasonic KXP-1150 9- “pin Printer
Panasonic KXP-2023 24-pin Printe:
Panasonic KXP-2135 24-pin Color Printer
. $49.95
$69.95
.. $75.00
JittyMON-64 (ML Monitor) ...
The Compression Kit ‘94 (M
Collette Utilities (Handy Geos Utilities) .
Desk Pack Plus
Oweoezils Greatest Hits (NewTools2,Stamp,L
FONTPACK Plus
g
geoFile 64/128
geoMakeBoot (Makos. Bootable copies)
geoProgrammer
eoPublish ....
EOS 64 v2.0
GEOS 128 v2,
geoSHELL V2.2 (Cu
International FONTPACK .........
Perfect Print LQ for GEOS (Laser-
RUN GEOS Companion
RUN GEOS Power Pak | or II (Specify)
Anatomy of the 1541...
C-64 Science & Engineering ...
C128 Computer Aided Design
C128 BASIC Training Guide .........c.c00
Commodore 64 Tricks and Tips ..........000. ;
GEOS Programmers Reference Guide
Graphics Book for the C-64
Hitchhikers Guide to GEOS
\deas for Use on Your C-64
Printer Book for the C64 .
Mapping the C64 .
Simple Internet
Handyscenner...
Pagefox.....
Video Digitizer
Videotox
eee Major Credit Cards Accepted eee
L Cadpak 64 (Abacus)
| Laser Squad
RAMLInk Base Model (OMB, No RAMCard)
RAMLink w/1 MB RAMCard (Special!)
RAMLink w/4 MB RAMCard iepecielt)
RAMCard RTC OptionKit .......00
RAMLInk Battery Back-up (Optional
Parallel Cable (RAMLInk to HD) ..
> Mipr & Sound
Digimaster
SID Symphony Stereo Canridge
Sonus 64 Sequencer, MIDI Interface, Cables .
Sonus 128 Sequencer, MIDI Interface, Cables ...
Suages & Compares
BASIC 64 Compiler (Abacus) ...
BASIC 128 Compiler (Abacus) .
Blitz! 64 Compiler (Skyles) .
Blitz! 128 Compiler (Skyles) ..
Buddy 64/128 Assembler ...
Cobol 64 (Abacus) ....
Fortran 64 (Abacus)
Pascal 64 (Abacus) ....
Power C 64 (Spinnaker) .
Productivity
Cadpak 128 (Abacus)
Chartpak 64 (Abacus)
Chartpak 128 (Abacus) .
Data Manager 64 (Timeworks) ..
| Paint v1.5 (128, 80-col., 64K VDC) (Living Proof) .
| Port v1.54 (128, 80-col,, 64K VDC) (Living pela sis
Personal Portfolio Manager (Abacus) $
Pocket Writer 1 (64) Digital Sol,)..
Pocket Writer 2 (64/128) (Digital Sol.) .
Pocket Writer 3 (64 or 128) (Digital Sol
Pocket Planner 2 or Pocket Filer 2 (Digital Sol.)
RUN Productivity Pak |, II, or Ill (Specify)
RUN Super Starter Pak 1541 or 1581
RUN Works . i
SEC Check Register 128 .
SuperScript 64 (Precision) . :
SuperScript 128 (Precision) ..
Suberbase 64 Version 3.01 (Precision) ..
Superbase 128 Version 3.01 (Precision)
SwiftCale 64 (Timeworks) ..
TWS 64 w/Speller (Busy Bee) ..
TWS 128 w/Speller (Busy Bee)
TWS Modules (HD/RUllustrator) .
~ Siecommunications
Aprotek MiniModem C-24 (C= ready, 2400 ti $69 00
Aprotek MiniModem C (C= ready, 1200 baud) .. .00
Aprotek Com-Modem Adapter (for ext modem) .
Aprotek Com-Modem Adapter Cable
BOCA 2400 w/SwiltLink and Cable .
BOCA 14,4K bps FaxModem ...
BOCA 14.4K w/SwiftLink & Cable
BOCA V.34 28.8K bps FaxModem ..
BOCA V.34 w/SwiftLink & Cabie ..
00 Commodore 1670 Modem (1200 bau
Dialogue 128
Nova Term Version 9.6 ON DIS!
BSwiftLink RS-232 Cartridge (Up to 38.4K baud) ..
SwiftLink Modem Cable (DB9-DB25) ..
Atomino
Ballistix
Blood Money .
Chomp!
Day in the Life of Prehistoric Man .
Escape Route .....
Flummi’s World
Heavenbound
Island of the Dragon
Lazer Duel ,......
Lions of the Universe .
Mainframe F
Menace ..
Navy Seal
Rings of Medusa
RUN C128 Funpak ....
RUN C64 Gamepak ...
Shoot ‘Em Up Pack (Gangster/Time Traveler)
Skate or Die ,
Slaterman ...,
The Amazing Spider-Man ,.
The President Is Missing! ...
The Three Stooges ...........
Tie Break Tennis
Total Eclipse ......
Walker ........456
Wings of Circe .....
Mastercard ¢ Visa * Discover ¢ American Express
P.O. Box 646
East Longmeadow, MA 01028
Creative Micro Designs, Inc.
Info: (413) 525-0023
Fax: (413) 525-0147
00° Supports High Speed Interfaces like
, * Supports ANSI color/graphics, VT102, and
| + SOFTWARE - CMD
OTN ovaterm| =1,/
version 9.6
Join the Telecommunications Revolution... get
on the Information Super Highway TODAY!
* New faster 80 column modes: Soft-80 on
C-64 (enhanced scrolling w/ REU); and
25- or 28-line C-128 VDC 80-col. mode.
+ Now use any memory device as a buffer
including: 17xx REU, RAMLInk partition,
GeoRAM, C128 VDC, BBGRAM, and
internal C64 memory,
* New text capture features:Capture text on-
ine and store in any device; High-speed
transfers directly into memory and now
retain buffer contents with battery/power
backed RAM devices such as RAMLink.
* Enhanced full featured Text editor can now
load/save files from the buffer and has an
integrated script compiler.
* Script language for automatic operations
* Simple BBS mode - dial-in downloading
* Supports real-time clocks in CMD devices
+ All new user's manual
Increase Speed Up to 1500% while
retaining 100% compatibility
* Easy-to-use — novice user configuration
* Now supports UUencode and UUdecode
and converts files on disk orin a buffer. Also
ASCII <> PETSCII and PETSCII to Unix,
* Protocal support; Zmodem - up/down load,
resume (crash recovery), streaming to
buffer; Ymodem batch, Ymodem-g;
Xmodem-1k, Xmodem-1k-g(to buffer)
Xmodem-CRC; Punter; Kermit; WXmodem.
SwiftLink for baud rates up to 38,400 baud
VT52 in 80 col, Plus C= color graphics and
ANSI color in 40 col. All emulation
modules now load from one window.
Now Just
$29.95
(Specify 5.25" or 3.5" disk)
THE NEWS MAGAZINE FOR C-64 & 128 USERS
For more than two years, Commodore World has been keeping
the C-64/128 market alive with up-to-date information from
some of the brightest minds in the Commodore community.
From beginner to expert, CW has something for everyone.
Columns regularly cover: Programming, what's new, reviews,
games, GEOS, telecom, projects and much more! Stop listening
to everyone telling you what you can't do with a Commodore
and see what the latest innovations can do for you!
Subscribe for only $29.95
Canada $35.95, EC Countries $45.95, Other Foreign $57.95
Shipping and Handling Charges
Continental United States
UPS 2nd Noxt
AK
Ground Day Day HI, PR | Canada | | | Foreign
$4.50 $13.00 |
CALL | $15.00 | $5.00 | CALL
$5.50 | catt | $17.00 | [seer CALL
$6.50 ‘cate | $19.00 | $9.00
~ | $7.60 | s ‘cate | $28.00 | $12.00 |
$10.00 CALL | $35.00 | $20.00
$15.00 | $29.00 | CALL | $40.00 | $25.00
$20.00 | CALL | CALL | $50.00 | $38.50 |
UPS C.O.D. add $5.00 (US/PR only)
Policies: CMD accepts: Major Credit Cards, Money Orders, COD and Personal Checks.
Personal Checks are held 3 weeks. Customer is responsible for shipping charges on
refusals. Most items are stock, contact CMD for firm delivery. Returns for merchandise
credit only within 30 days with prior authorization, Crodits are less shipping, handling,
taxes, customs, duties, and a 10% restocking charge. No refunds or credits on opened
software, All prices and spocitications are subject to change without notice
Order Subtotal
$0.01 to $19.99
$20, 00 to $29. 99
$30.00 to $59.99
$60. 00 to $149.99
$150.00 to $299.99
$300.00 to $799.99
$800.00 and up
a
3p
Stic i ricing
of d ‘ ‘ ' ‘ )
On ithe fastest, mos? aavanced storage devices
md J 4 i | <F "i > o> Pa
qvantanie torine ©-64 and G- 123 computer.
Power-Backed Expandable RAM-disk Drive
* Fastest possible method of storage with capacities up to 16 MB. Power and
battery back-up retains data even when computer is turned off!
¢ Equipped with CMD DOS for flexibility and optimum compatibility, RAMLink
can emulate multiple 1541, 1571, & 1581 disks or use CMD Native partitions.
e Ideal for use with GEOS as RAM Disk, RAM Expansion or both.
* Easily connects to cartridge/expansion port yet behaves and operates like a
super-fast disk drive with built-in JiffyDOS and SWAP features.
¢ Built-in Pass-thru port for other cartridges, RAM-Port for REU's & GEORAM
and Parallel port for fast access to CMD hard drives.
RL w/1MB $189 » RL
Wf 2) Wl sps)ee
Add tastsry 24 ifs 545+"
Full Featured High Density 3.5" Disk Drive
¢ The FD-2000 uses modern High Density diskettes (1.6 MB) just like Pentiums
or the Power PCs. The FD-2000 is the highest capacity floppy drive available
for the C-64/128 and is more compatible with existing software than the 1581!
¢ Equipped with CMD DOS for compatibility and speed, the FD-2000 also reads
FDSeries’
and writes 1581 disks, and can emulate multiple 1541 or 1571 disks.
¢ Easily connects to the serial bus just like any other drive and features
JiffyDOS for greatly enhanced speed on JiffyDOS equipped computers.
e Features: SWAP 8/9 switch, Device # switches (8-15), GEOS compatibility
software, FD Utilities disk and very small size (7.625"L x 4.75" W x 2.375"H).
PH-2O09 Only = DO HealSins Sloss add g404
eries.
Fast SCSI Hard Disk Drives for the C-64/128
HD Series Hard Drives are available in capacities up to 2 GB, are fully partitionable,
and can emulate 1541, 1571, & 1581 disks as well as provide Native partitions which
can be up to 16 MB in size and utilize MS-DOS-style subdirectories. HD's connect
easily to the serial bus or to RAMLink via a high-speed parallel cable. They are many
times faster than any other type of physical disk drive. Includes built-in JiffyDOS,
SWAP feature and Real-Time Clock. HD’s offer superior compatibility with most
commercial software including BBS, Productivity and GEOS. And with new pricing,
HD Series drives offer the lowest cost per megabyte of any C64/128 storage device.
Imagine... No more thumbing through endless piles of disks looking for the right one
— use your hard drive like a huge file cabinet to organize and store hundreds or
thousands of disks. Each 40 MB holds up to 240 -1541 disks. Get yours Today!
hed
5).
40 MB Only $249°°
170 MB: 42) = jesse 4 200) MB: SISOS oes
1,000 MB CALL 4 Z000 MB 7} 2} }< eae
J
* Only valid at time of RAMLink purchase.
Offers valid only in U.S. and Canada through October 31, 1996. Prices do not include shipping and handling. Pricing and spec's
subject to change without notice. See our main ad for shipping prices and policies. May not be combined with any other offers.
Forgotten Worlds
Capcom (available from SSI)
Heroes have it rough. They're
constantly being outfitted with the
barest essentials and shoved out to
take on a slew of hostile aliens with
little or no hope of survival, with the
small comforts of the occasional
weapons shop to keep them
company.
That's Forgotten Worlds for you.
Capcom wastes no time (the manual
is barely two pages long) setting the
stage for you and hurling you into
the action. You, the hero, outfitted
with an anti-gravity device and a
photon gun, must take on Lord Bios’
swarm of alien invaders who
threaten to conquer the Earth,
Nobody said life would be easy...
You progress across a scrolling
landscape as wave after wave of
nicely detailed opponent comes at
you. Your photon gun can fire in
eight directions as you fly across the
screen, which is a good thing,
because the enemy comes from all
angles. Successful kills often leave
behind Zennys—coins you can
collect forlater use towardimproved
weaponry at the strategically located
weaponry stores.
The action is fast-paced and often
the enemy seems to be endless, so
you may want to bring a friend who
plays simultaneously. This allows for
some much-needed strategy. For
example, one player can cover
ground enemies while the other
picks off airborne targets, or one
player can take on enemies that
approach from the right ofthe screen
(in the direction of motion) while
the other covers those that attack
COMMODORE WORLD
from behind.
Either way, there will
be plenty to do,
You, the hero, are imbued with a
great deal of energy, which is
depleted by enemy fire and
collisions. This energy supply can
be recharged at shops, but that can
get expensive quickly. You have but
one life, although you havea limited
number of continuation credits at
your disposal.
The graphics are amazingly rich
in this game, from the loading title
screen onward, Unfortunately, the
programmers did not cover all of
their tracks and you may find the
tophalfofyour character disappears
ifyou venture too near the top of the
screen while there is a lot of action
going on. This can get a little
distracting when the fleet is almost
upon you.
I can’t stress enough how much
better this game is with two players.
The ability to aim your gun isa great
one, but the control systern makes it
somewhat difficult to keep your gun
pointed in one direction while you
move in another. Having a backup
increases your odds of surviving.
Even when you master the firing
angles, the enemy comes from so
many places it’s good to have
someone to watch your back.
On the single-player mode,
consider yourselfa skilled beginner
ifyou can clear the first few waves of
attackers without losing all of your
energy. The attacks are that intense.
After a while, you start to settle into
a rhythm, which gets shaken up as
soonastheattacksstartin from other
angles.
Having another player
around is a great boon in this
case, and it’s not many action games
that allow for
cooperation, so it would be best to
take advantage of it while you can.
Forgotten Worlds doesa great job
ofcreatinga graphically atmospheric
realm for you to do battle on, and
has an excellent two-player option.
Itisashame that the follow-through
on the more ambitious visual effects
was not very strong, and of course
the control system does leave
something to be desired. But
Forgotten Worlds is a great space-
blasting adventure in its own right.
-Jason Compton
Grand Prix Circuit
Accolade (available from SSI)
Have youeverclimbed behind the
wheel of your car and wished you
were climbing into a Formula One
race car? Have you ever stopped at a
red light and revved your engine for
that ultimate moment whenitfinally
turns green? Do you geta thrill from
being the first one off the block at
that same red light? Do you love the
challenge ofa narrow winding road?
Well, if you've answered yes to any
orall ofthe above questions, you are
ready for the Challenge ofthe Grand
Prix Circuit.
Accolade presents the
Commodore owner with the
challenge of a lifetime, that of the
Grand Prix Circuit, a Formula One
Racing Simulation, For those of you
not familiar with the Grand Prix
Circuit, it is a racing tour open only
30
this sort of
to Formula One race cars. The races
themselves are held on specially
constructed tracks filled with
challenging twists, turns, and even
tunnels. The Grand Prix has strict
qualifying requirements and
presently there are only around 30
drivers in the entire world who have
what it takes to enter this Formula
One event. So as you can see, it’s a
challenge few have managed to
conquer. Keep this in mind as you
settle down into your favorite
computer chair to race in the Grand
Prix Circuit.
When the game begins you are
first presented with an option screen.
From here you can choose to
practice, partake in a single race or
the championship circuit. Below
these options isa difficulty level bar.
There are five different levels of
difficulty. The first two levels are for
beginners and provide you with
automatic shifting and the inability
to blow an engine. Level three is the
first real driving level. Here you get
to shift your gears yourselfand your
car begins to get damaged much
more easily. In level four you begin
to realize that you're not racing
against your buddies but real
opponents who want to win as
much as you do, And finally, in
level five, you meet up with the
pros of the Grand Prix Circuit
where anything can happen. Next
you'll need to type in your name
and choose the number of laps
you'd like for each race. I love
having the freedom to choose how
many laps I want to race because
this means I have the choice of
playing a long or short game.
Issue 16
fam. rvifran
0 (G/\IY\35 ©
SL SUVULI CY
rm \ i] f
Lv (
O (G/a\ Leal 145 0
After you've completed these
options, you're whisked away to the
next screen where youget to view each
of the eight different tracks of the
Circuit. The tracks are located in
Brazil, Monaco, Canada, Detroit,
Britain, Germany, Italy, and Japan.
Forthefirst time player, recommend
choosing the Hockenheim-Ring in
Germany. Although it presents you
with a few amazing bends, it’s
certainly a lot easier than the loops
and tunnels of the Suzuka
International Race Course in Japan.
Finally, it’s time to choose your
car. There are three Formula One
race cars to choose from: the
Ferrari—the best of the three for the
beginning player because it’s the
easiest to steer; the Williams—good
for the intermediate player because
of its speed and braking abilities;
and the McLaren—the speediest of
the three and the most difficult to
handle. The game displays each of
the three cars on a screen of its own
along with its relative statistics and
features. Once you've made your
decision, it’s off to the races you go!
Well now, how does the game
play? As I sat in my chair I found
myselfactually twisting and turning
with the bends. It’s pretty realistic.
The graphics are gorgeous, giving
you the feeling of actually being in
all of the eight different countries
and the sound and music are just as
good. But, the game is difficult. Even
in the practice levels | found myself
ruining my car for quite some time.
What I finally realized is that speed
isn’t everything in the Grand Prix
Circuit. Sometimes due to the all the
bends you'll find that you just have
to take it slow. Once you've realized
this, you'll find yourself actually
finishing the races and then it’s
finally time to try the single race.
Thereal races outside of the practice
August/September 1996
races, require you to qualify before
you actually partake in a race. I had
no problem qualifying. I even
managed to qualify for the ninth
position! And just as surprising |
managed tocomplete my first actual
race and bein the top five! Of course
this was at the easiest difficulty
setting.
To rap it up, Grand Prix is what
you would expect from a racing
simulation. However, because it is
the Grand Prix you'll find it more
challenging than other games of this
variety. Who knows, perhaps you
could be the next Mario Andretti!
-Sherry Freedline
Death Sword
Epyx (available from SSD
Death Sword is a one- or two-
playersword fight simulation for the
Commodore 64. A joystick is
required for each player.
In Death Sword you take on the
role of Gorth, a warrior prince of the
Northlands. During your travels you
learn of Drax, an evil sorcerer, who
has seized the city’s throneand, even
worse yet, imprisoned their princess
with the intentions of making her
31
his future bride. Of course, being the
noble, fearless warrior that you are,
you decide to take on the challenge
of rescuing the princess and
restoring her to her rightful throne.
By doing so, you will become a
legendary hero and be awarded
wealth and riches befitting such an
accomplishment.
On side one of the Death Sword
disk is a practice game. Here your
companions will help you train for
your battles. When you feel satisfied
thatyou've become anaccomplished
swordsman, flip the disk over to
begin your search for Drax.
Before you can fight Drax for the
princess’ freedom, you must fight
and overcome the warriors located
in the castle’s throne room, the
enchanted forest, the lava pit, and
then in the palace’s dungeon. If you
lose, the sorcerer’s pet, Grundel—a
slobbering green creature—will
have you for lunch!
Allin allitsounds like a fun game.
Afterreading the manual I was quite
eager to play the game. I plopped the
game in the disk drive, loaded it up,
went to grab a drink and came back
to find a major disappointment.
Death Swordis definitely nota game
of commercial quality. The plot, the
goal, and even the game play are all
what you would expect to find in a
good commercial game. However,
it’sthegraphicsandsound that cause
the feeling ofdisappointment. Aside
from the clinking and clanging of
the swords and an occasional small
musical sound effect, the game is
silent.
Fighting a warriorisdone through
the use of your joystick. For instance
by moving the joystick upward you
can jump, move it in the southwest
position to roll backward. Pressing
thejoystick button while moving the
joystick gives you additional moves
suchas overhead chops, head-butts,
and the web of death. The practice
mode comes in handy for learning
all these combinations. Despite the
low quality graphics and sound, |
did still enjoy the fight.
As mentioned above, the game
can be played by one or two players.
In the one player game there are no
time restrictions involved when it
comes to fighting the enemy.
However, in the two player games
the fights can last up to a total of
ninety seconds. If you and your
friend survive this time period the
battle is considered won and you
will regain your strength in
preparation for the next battle.
So, I guess when it comes down to
the option of purchasing or not
purchasing this game you'll have to
weigh your odds. Ifyoulike games of
this nature involving a good fight,
youwill probably beable to overlook
the weaknesses in the graphics and
sound. However, if you're simply
looking fora diversion you may want
to look elsewhere.
-Sherry Freedline
%)
COMMODORE WORLD
The Software Manual
Programming the 65816
David Eyes and Ron Lichty; $65.00; The Western Design Center, Inc,
2166 East Brown Road, Mesa, AZ 85213; (602) 962-4545
All of the discussion surrounding the CMD
SuperCPU introduction has raised questions
about the 65C816S CPU that forms the heart of
the CMD unit and what advantages it offers over
the 6502 CPU. For those interested in learning
the specifics on this new IC, help is available.
Western Design Center, manufacturer's of the
CPU, offers a book designed to help answer
questions concerning the WDC line of CPUs and
how to develop applications on them. Titled
“Programming the 65816, Including the 6502,
65C02, and 65802” is written by David Eyes and
Ron Lichty, andis offered by WDC as a reference
manual. Although written in 1985, the
information is timely and accurate.
The book is divided into 4 main sections and
contains a number of appendices. Assuming
nothing about the reader's prior knowledge of
the 65XX line of CPUs or programming in
assembly language, the first section details
concepts crucial to understanding CPU operation
and software development.
Topics covered include:
- Descriptions of bits, nybbles, and bytes
- Displaying quantities in hexadecimal format
- Boolean Logic
- Performing arithmetic in a CPU
- Writing programs in assembly language
With the reader having some grasp of the
basics, section 2 details the architecture of the
three main microprocessors described in this
manual, the 6502, the 65C02, and the 65816.
Many advanced readers will find the 6502 chapter
of only slight importance, but inexperienced
programmers will find the chapter full of
important insights into the workings of the 65XX
CPU line. The basic register set and status flags
are described, as are the various instructions and
the layout of memory. Stack operations and the
COMMODORE WORLD
stack page are also detailed. At the close of the
chapter, various “bug” or quirks present in the
original 6502 as designed by MOS Technologies.
Most are completely accurate, although this
reference, as wellas the various WDC data sheets,
specifies that the NMOS decimal mode leaves
important registers in unknown states. Although
this might be true, information to the contrary
has been presented by Commodore users.
Chapter 3 details the 65C02, the CMOS 6502
designed by WDC to replace the original 6502.
This chapter is very brief, describing only the 27
new opcodes available in this variant of the CPU.
For advanced developers, the 65C02 brings with
it the ability to branch unconditionally (BRA), as
well as the ability to push and pull the index
registers off the stack. (No more PLA, TAY, PLA,
TAX). One section describes the advantages of
the CMOS fabrication process over the NMOS
process used on the 65XX CPUs used in the
Commodore line of computers. Finally, the last
paragraph describes the differences between the
NMOS 6502 and the CMOS 65C02 CPUs.
Programmers will be happy to note that the quirks
of the NMOS 6502 have been fixed. However, in
some ways, the 65C02 is too good. In fixing the
problems in the NMOS 6502, some opcodes in
the 65C02 actually execute faster. In a few
instances, the extra speed might wreak some
havoc, but the ending sentence in Chapter 3
claims that “this has affected little software”.
For programmers eager to start developing
SuperCPU native mode applications and take full
advantage of the powerful 65816 should pay
special attention to this book starting with
Chapter 4. This chapter introduces the 65816
and the 65802 (the version of the 65816 that is
pin compatible with the 6502/C02). The two
“modes” (emulation and native) are discussed, as
is which mode the CPU powers up in (emulation).
The 65802's restrictions compared to the 65816
32
are described in passing, and the important
advantages of the 65816 and 65802 are detailed.
Many already know the 65816 can address up
to 16 megabytes of memory directly, but few
will note that stack and zero page have been
widened to include all of the first 64 kilobyte
bank of memory.
Detailed diagrams of the 65816 register set are
illustrated, and some nomenclature specific to
the 65816 is discussed in this chapter. The book
shows programmers how to view the 16
megabytes in “banks”, as well as “pages”. Direct
Page (the expansion of zero page) is described in
some detail, and each new register is outlined
with its functions detailed. Introduced in the
chapteras wellisthe notion of 16 bitaccumulators
and index registers. As this concept and how to
utilize the resulting registers subtly affects
programming choices, the books takes ample
time to discuss this new feature. As programmers
might guess, theexpansion of these registers affect
standard 6502 opcodes, and the books describes
thisas well. The 9 new addressing modes available
in the 65816 are outlined, as are the 78 new
opcodes available in this CPU. The remainder of
this chapter describes the 65802 and howit differs
from the 65816. Interestingly, this chapter closes
describing how the 65816 and 65802 provide
slightly better compatibility with the 6502 than
the 65C02 does. The cause: The 65816/802 does
notalterany timing ofany 6502 opcodes, whereas
the 65C02 does.
Part 3 of this book begins the Tutorial Section.
This section begins by outlining the REP and SEP
opcodes, used to switch the 65816 between
modes, Then, the assembler notation used
throughout the tutorial section is described,
Readers should beware that, although the
concepts and codes presented in this tutorial are
accurate, the assembler syntax and some
directives used in the samples will not be familiar
Issue 16
to Commodore developers. The samples were
developed on an Apple computer using an Apple
assembler, so some alterations by the reader will
need to be made in order to create correctly
assembled samples. To give some indication of
this sections importance, it occupies almost 200
pages, while the previous 2 receive only 75 pages.
Much of this tutorial information applies to all
the CPU models referenced by the book’s title.
However, someinformation and some addressing
modes are only applicable to the 65816 and
65802. Like all machine language tutorials, this
one shows how to move data around, how to use
the various addressing modes on each CPU, how
toalter the flow ofa program, and how to perform
simple math using the CPU. Further chapters
describe logic and bit operations, utilizing the
complex addressing modes available on the
65816/802, how to write programs as collections
of “subroutines”, and how to take advantage of
“interrupts”. Veteran developers will find much
of the information redundant, but new
programmers may find themselves overwhelmed.
I would suggest attempting the tutorial in stages.
Section 4 provides some examples of code used
to perform real world work, from multiplying
numbers to dividing them, An entire chapter is
devoted to describing andimplementinga 65816
step and trace debugger called DEBUG 16. A final
chapter in this section outlines several “gotchas”
in developing applications and offers ways to
alleviate or eliminate these problems.
If, perchance, you are the type who can quote
hexinyoursleep, can assemble complex programs
by hand or in your head in minutes, dream in
binary, oris referred to by others in hushed tones
as “guru” or“master programmer”, youcan safely
skip to the Sth and final section. This section
provides a wealth of reference materials for all.
Chapter 17 describes each of the 65XX/65XXX
addressing modes in detail, while Chapter 18
describes each instruction available in this line of
CPUs. The final chapter, 19, lists all the
instructions and which CPU can utilize each one.
In addition, the complete opcode matrix table
showing opcode values, instruction lengths, and
execution times is presented.
With the book, two appendices are provided,
The first describes each of the pins on the various
CPUs discussed in the book, while the second
describes some of the support ICs available for
the 65XX line of CPUs. If you are electronically
inclined, these chapters will prove useful when
interfacing to any of the CPUs described.
Although not part of the book itself, Western
Design Center includes a current set of data
specifications on one or more of its CPU line in
the book’s 3 ring binder. Although the
information is somewhat redundant given the
content of the book, readers can use the data
sheets as an additional reference to double check
accuracy of the book. It can also be used asa quick
programming reference, as the 571 page book
can prove somewhat unwieldy to use when
developing applications.
The usefulness of this book depends on your
needs. If you are learning to develop 65XX
applications for the Commodore computer, the
size and wealth of information in this reference is
overkill. In addition, the extra information on
the 65816 and 65802 will simply confuse you.
However, if you are gearing up to develop 65816
native mode applications for the SuperCPU or
other ‘816 equipped accelerator cartridge, you
can find no better reference. Although the data
sheets on the ‘816 provide some information on
programming the CPU, theinformation is sketchy
andincomplete at best. The data sheets are meant
to provide basic information, not substitute fora
programmer's guide. So, before you start
developing those native mode apps for the CMD
SuperCPU, graba copy of this book to understand
the features available to you.
-Jim Brain
CW & RUN BACK ISSUES
For years, RUN Magazine provided Commodore Users with a great source
of information, and now CMD has given you Commodore World. Don't let this
valuable information slip away—fill in the voids in your library now!
RUN Magazine Back Issues
Any 3 issues for $12.00, any 6 for $18.00,
or any 12 for only $24.00
RMJAN89 January 1989 RMJUNSO June/July 1990
RMFEB89 February 1989 RMDEC90 December 1990
RMMAY89 May 1989 RMJAN91 Jan/Feb 1991
RMJUN89 June 1989 RMJUN91 JuneJuly 1991
RMJUL89 July 1989 RMJAN92 Jan/Feb 1992
RMAUG89 August 1989 RMMAR92 March/April 1992
RMSEP89 September 1989 RMMAY92 May/June 1992
RMOCT89 October 1989 RMJUL92 July/August 1992
RMSP89 Special Issue 1989 RMSEP92 Sep/October 1992
RMJANSO January 1990 RMNOV92 Nov/December 1992
RMMAY90 May 1990
Shipping: 3-6 issues - U.S. $3.00, Canada $5.00, Foreign $15.00;
12 issues U.S. $5.00; Canada $7.00; Foreign $20.00
Commodore World Back Issues
$4.95 each, or any 3 for only $12.00
Cws
Commodore World Issue 1 Commodore World Issue 9
CW2 Commodore World Issue 2 CW10 Commodore World Issue 10
CW3 Commodore World |lssue3 CW11 Commodore World Issue 11
CW4 Commodore World Issue4 CW12 Commodore World Issue 12
CW5 Commodore World Issue 5 CW13 Commodore World Issue 13
CW6 Commodore World Issue 6 CW14 Commodore World Issue 14
CW7 Commodore World Issue 7 CW15 Commodore World Issue 15
Shipping: U.S, and Canada $2.00 for first issue, plus
$1.00 per additional issues,; Foreign $5.00 per issue.
TO ORDER CALL 1-800-638-3263
August/September 1996
33
INTERCORP COMMUNICATION Presents
CSOFT Wares!
{As Seen on Many BBS's}
Digi<—>Dex Vi.
a SEQ. file reader that will read text as well as art.and supperts drive’
8-11Jt also has many Digi-seunds which are very entertaining.
$7.00 + $2.00 Sail
D.S.11 Carteens”
10 of your Favorite Carteen Digi Samples en one disk with avery cas
to use Menu System fer leading and playing.
Great For the Kids! $3.00 + $2.60 Sail
Send erders te
Intercerp Communication 100 Pinegreve Pentiac,M!, 48342
Alaska, Hawil.a International add $1.80 te Sah
SHELTON, WA.
CPU =
The Commodore 128/64 Power User Newsletter
CPU is a quarterly publication that for
two years now has kept its readers
abreast of new developements and
helped those to get more out of their
investments.
Sample/Back Issues: $3.50
6 Issue Subscription: $15.00 us
International: $27.00 us
Canada and Mexico: $21.00 us
Ushering the Commodore user into the 21st Century.
P.O. BOX 1817
COMMODORE WORLD
The SvsOp's Corner
Notice of Disclaimer:
Many of the ideas and instructions used in this
column are specific to a single Bulletin Board
Program. Many things may work with other
programs, and many may not. Some of the
topics that I touch on are a direct result of over
3500 hours working with several computer
configurations, and up to eight modems, Some
of my ideas may not work with your
configuration. Before you try any of them, be
sure to check with your manual, or whomever is
providing you with customer support. Those
who assisted in the background information for
this column:
Andrew L. Fish, Marquette University,
Michigan (list of ANSI commands)
Andrew Bernhardt, author of Does The Job
BBS
Ali R. Talaie, author of Computer Acronyms,
Jirst edition
Sanford Walke IV, Isthmus corp. SYSOP
(provides UNIX command help)
This particular column will continue with basic
instructions for use of some of the ANSI codes
that you can use on your BBS to create graphics,
menus and screens that will keep your users
interested in what you have to offer. I know that
a lot of BBSs for the Commodores use the native
graphics that Commodores use, so | will just give
you some of the basic ANSI commands right
now, and if there are enough requests for more,
COMMODORE WORLD
by Maz Cottrell
(mcphoto@izzy.net)
then I will get into them in more detail ina future
column. Before I continue, I think it's important
to touch on another item.
Most of my company’s presence is on the
Internet: my photography company and my
newspaper publish on a daily basis there. As a
result, | am a regular maven in the newsgroups.
My favorite of which (ofcourse) iscomp.sys.cbm.
Lately, I've noticed that BBS programs are a hotly
debated topic. If you want to start a debate,
mention a BBS program, then stand back. Each
programmer has worked hard to create a great
program, and often each one has its own features
(and quirks) that sets it apart from the others.
Each SYSOP, potential or running a board, has a
horror story to tell.
Thereseemsto bea certain amountof difficulty
in finding just the right BBS program, and when
you decide which one you want, actually getting
the thing to disk drive can be the hardest part of
34
getting a BBS online. After seeing a lot of ground
teeth lying around the newsgroups, I have set out
to find the various programmers and software
distributors that deal with BBS programs.
Beginning with my next column, I'll try to
highlight a few.
The Fun Stuff
O.K., onto the fun stuff. We'll create a basic text
file that will allow you to see some of the cool stuff
that you can do with graphics and commands.
One of the things that you should consider is at
what modem speed the user will be logging on.
Sometimes if you are doing an animation, a 2400
baud user will not see as good ofan effect asa 14.4
baud user. Likewise a 14.4 user might blink and
miss a 20 frame animation.
ANSI graphics are a powerful tool that you
can use to create some pretty neat things on the
users screen. If you have the time and patience,
you can really get some wild effects. Most of
what I have done on my BBS is information
based (asin no games or fun stuff) so I really have
to keep hopping to keep a user's interest. The
part that I like the best is the ASCII artwork that
artists around the world create for BBS SYSOPs
to use. I mentioned in my last column that Iam
setting up my BBS to allow you, the reader, the
ability to see what I am talking about online
while reading about how to do them here. I also
have a nice gallery of artwork. I have used most
of them on my BBS at one time or another, and
like them, so I am passing them along to you.
Unfortunately, these things can be complicated,
Issue 16
so I won't type any of them in here. Doug is
probably pretty happy about that!
Instead, if you email me, I will give you the
logon instructions. I have set up the system to
demonstrate how to make a menu look good to
the user, and how to give the user what they want
withoutasking, along with giving yousome ASCII
art that will work on just about any BBS.
ANSI was designed to be used onall computers,
but has been associated with IBM computers.
IBM (ora clone ) manuals come with a listing of
ANSI commandsand how tousethem. But, where
ANSIreally shinesisin telecommunications. You
can see some pretty cool graphics on various
BBSs that use ANSI. This is because of the
character control that it gives you when you are
using a text based telecommunications program.
You can think of ANSI graphics as a poor cousin
to HTML (HyperText Markup Language). The
United States Government has a BBS for federal
jobs listings that uses a lot of these graphics. Even
on my Commodore equipped with a terminal
program like Novaterm and a low budget color
monitor, you can see the most advanced of them.
Some BBS programs will use PETASCII graphics
and not ANSI. Here's another bit of trivia for you.
Ifyou have a shell account on an Internet Service
Provider, the menus that they use also use ANSI
commands. The whole idea behind ANSI graphics
is cursor and color control. I also use ASCII art,
which is keyboard characters arrainged into a
picture. Some of these can be really detailed.
However, they almost always require a black
background and screen clears to view them
properly, which is where we should start.
The Structure of ANSI
ANSI, likeany other language for computers (even
though its uses are for textfiles and animation,
you can consider it a language of a sort), has
specific families of commands. Let’s look at color
control. Here are some of the ANSI commands
that are available, thanks to Mr. Fish.
How to Input the Commands
As you read my instructions on using graphics,
you'll see (esc) used a lot. This means that you
must use whatever code that your BBS uses for an
escape sequence. This tells the computer that you
are giving it a command. The BBS program that
Loperate uses CTRL P (holding down the Control
key and pressing the ‘P’ key at the same time), or
Commodore P to tell the system that an ANSI or
some other command is about to be issued. The
CTRL P is part of the escape coding from MS-
DOS (Microsoft DOS—if you look at your C128's
40-or 80-column start-up screen, you will see the
Microsoft copyright). As we all know, Microsoft
August/September 1996
provided Commodore with some ofthe DOS that
we use on our machines. IBMs will have you press
the escape key to send an ANSI command.
Commodore 64s don’t normally have an escape
key, so only part of the command, CTRL P, or
Commodore P is used. This is not true in all
Commodore programs. As another example, if
you were using a UNIX system (some IBM owners
and most Internet providers use UNIX ora newer
version called LIUNIX), the escape sequence
would be CTRL V.
Cursor Control
Controlling your cursor is a very importing
activity. With ANSI, youcan makeit goup, down,
sideways, just as ifyou were using the cursor keys
ina print statement on a Commodore. Well, you
are doing this on a Commodore, you are just
using a different route to get the same results.
Here isa list of the cursor commands that should
be available to you. Note that ‘x’ is a number.
COMMAND DESCRIPTION
[xA moves cursor up x
lines,same column
[xB moves cursor down
x lines, same column
[xC moves right x
columns, same line
[xD movesleftx columns,
same line
[xsyH moves cursor to
location x,y onscreen
[xX erases spot that
cursor is on and x
characters
This is not a complete listing of the text control
commands. These are the ones that I have used
with my system, so I know that they work. You
can get some neat effects with these commands.
One of the things that I do on my system when it
is time for the user to input a system command
(log off, download, etc.) is draw a reverse line of
spaces, and then move the cursor back to the
beginning of the line. When the user types in a
command, the type shows up as non-reversed
letters. It’s a little thing, but looks great on the
screen.
Colors
The background colors are separated from
foreground (text) colors by the numbered prefix
in the command. The use of an ‘m’ (note that it’s
a lowercase m) will tell the BBS that you are
issuing a color command. The foreground is
indicated by a ‘3’ and the background a ‘4.’ Here
are the color commands:
35
FOREGROUND COLOR BACKROUND
30 black 40
31 red 41
32 green 42
33 yellow 43
34 blue 44
35 magenta 45
36 cyan 46
37 white 47
You can see that the last digit of the color
commands are the same for both the foreground
and background. Only the 3 and 4 are the
different. Keep in mind that an ‘m’ is used at the
end of the command. An example of this
command might be: (esc)[40m. This turns the
background black.
Attributes
Attributes are things like reverse text, blinking
and underlining.
COMMAND ATTRIBUTE
{Om All attributes off
{5m Blinking on
{7m Reverse on
[25m Blinking off
{27m Reverse off
Clearing the Screen
When creating a menu or textfile, you need to
decide whether ornot youwant toclearthescreen.
If the file has a lot of text or graphics, then I
usually issue a screen clear. If there are just a few
lines, then I might just use a few carriage returns
to separate the lines of text. An example would be
ifyouhada gamethat you created. The top half of
the screen can be left alone for a graphic or a
menu, and using cursor commands you can just
add promptsat the bottom ofthe screen, changing
the picture as needed. The biggest things is
whether or not the previous screen needs to be on
the monitorstill. For instance, clearing the screen
after letting the user see a disk directory is not a
good use of this command. Clearing it for the
Command input menu that your BBS uses is.
Sometimes. The final decision is up to you, the
SYSOP. Thisis another time where the beta tester
and logging on from another computer come in
handy.
You'll notice that ANSI commands are usually
anescape key input, followed bya number(s) and
then a letter. The letter part ofa ANSI command
iscase sensitive, which is most important because
an upper case J will do something different than
a lower case j.
To add a screen clear toa file, we must use the
command (esc)[2]. You can add a screen clear
COMMODORE WORLD
part way through the file. This can be of help if
you are doing some kind of animation, or want to
have multiple on screen prompts within a single
textfile. The addition of the [ character is also
from our old friend MS-DOS, You should note
that in an animation sequence, each code should
have the escape sequence, evenifthesystemallows
for multiple ANSI commands. Mostly, it is for
neatness of the coding, but having a single escape
key sequence can sometimes have poor results.
Don't ask me why, I just heard that from a UNIX
guru.
So, to start our textfile, we will enter our first
ANSI command!
(esc)[2J
This will clear the screen. Now, let's assume that
you will be showing the user a textfile that will
show them the system specifications of your BBS,
The next thing that we should do is to use a
color command to make the screen background
black so the the art will show up clearly.
(esc)[40m
Now we have aclear black screen. But what about
the text color? How about a nice red?
(esc)[31m
There. Now we can add some specs about our
BBS, Let's assume for the sake of this article that
we are doing this on my BBS. You can change the
text to suit your own system. I'malso going toadd
some other commands that we'll talk about next,
so the full listing in the sidebar, “ANSI Info
Screen”.
As you can see, there are a lot more commands
in this little bit of text than you might think,
What we just did was to reverse the text (esc)[7m
and change the text colors (esc)[3#m so that what
we want highlighted will be in reverse. You also
have to make sure that you change the screen
back to the black background, red text when you
are done by using (ese)[0m (turn offall attributes)
and (esc)[3. Lm after EACH series of text. To answer
the question that all newcomers have to this, yes
itis a lot of work. That is why you should only do
the fancy stuff with files that will stay the same
most of the time such as command menus, help
files, etc... As far as shutting off the attributes
(colors, reverse text) every time I change some
aspect of the file, | do it from personal habit, not
because you have to do it that way. Some will tell
you to do this a little differently, but I like it
because it makes sure that you have the text and
background set correctly.
COMMODORE WORLD
Youwill probably gravitate toward some ANSI
commands that appeal to you more than others,
which is where the personality of your BBS will
come to life. After all, it is how a system looks to
the user, whether it is an Internet Provider
running ona SUN and UNIX ora Commodore 64
running a BBS and using ANSI, that shows the
world the SYSOPs personality.
So, we have cleared the screen, changed the
text color, and made some parts of sentences a
reversed screen. You should be able to figure out
how the rest of the commands work without too
much trouble. A complete list of the ANSI
commands is one of the things that lam planning
on putting on my BBS. All of the commands
follow thesamerules and techniques forinputting
them.
I'llleave youwitha description of the technique
that Luse to create my files and animations. First,
Ilog onto my BBS from my other computer. Then
| use the editor in the BBS to create the file while
online, After each line, | test the file to see if it is
working correctly. One important thing to
remember about ANSI is that the commands are
not seen when the file is listed. So, writing down
what you are doing on a sheet of paper is pretty
important. Why? Because the command is not
visable on the screen once you list the file. In fact
it is very important. I know, because I can forget
what I coded and when I go back to change
something, | forget things like the number of
columns I moved the cursor. This particular
edition of the SysOps Corner should have given
youa pretty good idea on using these commands.
ANSI can bea powerful tool ifitis used right. But
in the wrong hands...
Next time, I will start with my big ‘Interview
the Programmers’ project which should be
entertaining to say the least. Until then, you can
email me with questions, flames, input, ideas or
even log on instructions.
%)
ANSI Info Screen
(esc) [27
(esc) [40m
(esc) [31m
Welcome to the
(esc) [7m (esc) [36m
SySops Corner Demonstration BBS (esc) [0m (esc) [31m
System specifications:
Computer: (esc) {7m (esc) [31m
Commodore C128D (esc) [0m (esc) [31m
Drives: (esc)[7m (esc) [36m
FD2000, HD-20, RamLink (4 meg) (esc) [0m (esc)31m
Modem (esc) [7m (esc) [32m
US Robotics Courier 14.4 with ASL/V.32 (esc) [Om (esc) {31m
Todays date and time:
(esc) [7m
( Today’s time and date ) (esc) [0m (esc) [31m
36
Issue 16
fi Grower's Guide to
User Groups
The President of the Tampa Commodore User Group
shares his group's methads for increasing ing membership
As an old ‘die hard’ supporter of Commodore
and active user group president on and off for the
last ten years, I've seen Commodore go up and
down and up again as we move through time. As
with all things, times change, as so the struggle to
survive presents itselfasa constant need to adapt.
Commodoreisstill a viable machine as it was way
back in 1982. Only the nature of the computer
has changed. The users of Commodore are old
‘die hards’ and still a new large array of first time
computer owners. I've been in contact with several
other sister clubs, all experiencing the problem of
loss of members. So it may be true, except for us
in Tampa. Keeping abreast of changing times, we
have realized that our mission as a support club
has also changed. In fact, we are more important
than ever. Commodore is still a hot machine,
only the price has changed from in store purchase
newtoused. Inmany cases the first time computer
owner, happy at finally being a computer owner,
suddenly realizes the support has disappeared
off the open market. This, of course, is not true.
The support has just moved from local stores to
mail order. New programming and hardware
advances has made the C64 and C128 still the
best home computer, in my opinion, of anything
around.
Here in Tampa, we see our mission as one to
pickup the 'stragglers’. Oh yes, Commodore users
are still out there, but do they know that your
local Commodore support group is there? As a
club, we have all the support companies on file to
service new members. And we have many new
members. Infact, we havetripled our membership
since the institution of new policies since January
1996. And we shall quadruple or more in size
before this year ends, reaching our former
strength not seen since the late 80's.
Here is the six part plan we instituted:
(1) STORE FLYERS - If you have a local store
available, print up some detailed in-store flyers
August/September 1996
advertising your club. This will become your main
source of growth.
(2) BUSINESS CARDS - Have business cards
printed up to advertise your user group. On ours,
we have our club name and a few lines such as
“C64 and C128 support”, “programming”, “large
software libraries”, and “printer re-inking”. We
also have “more information” and the phone
number of the new member coordinator. These
business cards can be put up on store bulliten
boards, handed out to flea market dealers, at
garage sales selling Commodore equipment,
taped onto equipment at thrift stores and alike,
and passed unto sellers of equipment advertised
in local papers. These business cards are
welcomed as it helps sell the Commodores being
offered forsale. The first thing that thenew owner
will do is to contact your club for support and
information.
(3) LOCAL BBS-Ifyouhavealocal Commodore
BBS in you area, align your club with it. Many
times most on line users, for whatever reasons,
don't participate with their local club. But here in
Tampa, we have merged the two concepts
together. Asa club, we even have private message
bases and downloading of club owned public
domain software libraries. We have also designed
the club to conduct on-line business for those
members unable to make a voting meeting. We
pride ourselves with BBS get togethers quarterly
where we litterly take over a local resturuant
establishment for a Sunday noon brunch with
lively conversation on the latest Commodore
upgrades and software.
(4) LOCAL COMPUTER PUBLICATIONS -
Local computer magazines and such are probably
offerer free and distributed widely among local
computer stores. Check these out for free
advertisements of your user group. You may be
surprised of old Commodore owners, who have
lost touch and out shopping for a new system.
You may be further surprised that they are more
37
interestedin upgrading their Commodore system
rather than to invest more capital into a new one.
Remember, you club has the listing of
Commodore support no longer seen in computer
stores.
(5) LOCAL NEWSPAPERS - Check out your
local neighborhood newspapers for free
advertising of you user group. You can get free
news print under the Weekly News or Club
Information sections. You may have to send
weekly letters or fax the club meeting times or
place to keep this kind of advertisement active.
(6) CABLE TV ACCESS - All cables companies
offer a free local access channel. Your cable
company may also offer a channel free of charge
advertising local clubs and community events.
Design a clubad and have it on the tube. We have
had several contacts and new members through
this kind of advertisement.
Oh yes, Commodore has changed! But so has
the world and all computering. All the above
ideas have worked successfully for us. Try it in
your local support group. Only a few local users
and no organized support, form a local group,
advertise, and watch it grow. Commodore is still
around. In most areas, users are unaware as to
how much it has been upgraded in hardware and
software. Computering is still a fun hobby in the
home, with great educational and in-home
business applications. The mission and life blood
of Commodore users groups as we reach into the
millenium is to reach out to the silent army of
‘stragglers’ and new first time owners, excited
about their first affordable home computer. My
words to you are “ADVERTISE AND GROW",
Can you beat our club growth rate as we have
experienced here in Tampa?
Jayme Rice
President, Tampa Commodore Users Group
%)
COMMODORE WORLD
(arrier Detect
By Gaelyne R. Gasson
<>
TRANSFERRING FILES ON THE INTERNET WITH FTP
As Easy As FTP
A recent advert for the Internet grabbed my
attention with big bold lettering: “Welcome to
the smorgasbord!”. It went on to describe things
they had to offer, including the ability to download
files from hundreds of Internet sites via FTP.
What’s FTP all about? It sounds mysterious. It
uses Unix commands. It must be terribly difficult
to do, right? Wrong.
What is it?
FTPing is similar to being able to view BBS
download directories without the benefit of
havinga program to give you the file descriptions.
The basic gist of it goes something like this. First
you log onto an FTP site, (usually anonymously).
Then, just as you would with your Commodore
computer when looking fora particular program,
you move about the directories, listing them.
When you find what you're looking for (or
something that interests you), you send the file to
your home directory on your Internet Provider.
Once the files are in your home directory, youcan
download it to your computer. Some FTP systems
let you skip this step and download files to your
computer without exiting the FTP program.
That's not too difficult is it? What's that? You're
worried about all the little steps between and
what commands you need to use? That's
understandable. | felt the same way the first time
I read about FTPing. Let's walk through the
process and discuss it along the way.
FTPisan acronym for “File Transfer Protocol”,
and it’s a utility, not a command. Once you start
it, it’s in control until you exit or quit the utility.
How you go about starting a session depends on
the type of Internet access you have. If you're
using an Online service, or your provider has a
menu, you will find FTP as a menu option,
otherwise you will be usinga Unix shell. Although
COMMODORE WORLD
it may seem easier witha menu, it may be faster to
use the shell instead. Another advantage of using
the Unix shell is that most text and commands
will match articles, such as this one, or books you
read on the subject. When you FTP usinga menu,
you're at the mercy of whomever wrote the menu
program for the type of prompts you get. | know
it’s a weird type of choice to make—no prompts
at all versus prompts that might not make any
sense. Welcome to the Internet. <smile>
Anonymous Logins
We're going to jump in via the plain FTP utility
from a Unix shell. There are two ways to start
FTP, One way is to type “ftp” on the command
line, but thisisn’t very efficient since you will next
be telling the utility where you want to go. One
Internet site with heaps of Commodore files is
cenga.uwaterloo.ca, so let’s go check it out. On
the command line, type:
ftp cenga.uwaterloo.ca <return>
My first attempts at FTPing were frustrating for
me because the system kept telling me no such
place existed. After several tries, I finally found |
was typing with dyslexic fingers, and I'd
38
transposed two characters. (I'dbeen typing “gna”
instead of nga”). Once I typed the name correctly,
everything worked fine. Ifyou misspell the initial
address, you will find that you're already within
the utility, and can tell this because your prompt
will have changed to “ftp>”. From this prompt,
you must tell it to “open” the site you wish to go to.
For example:
open cenga.uwaterloo.ca <return>
Once you've connected, youshouldseesomething
like:
Connected to cenga.uwaterloo.ca.
220 punisher FTP server (SunOS 4.1) ready.
Name (hal9000.net.au:moranec):
Your Emailaddress will appear in the parenthesis,
anda cursor will beapparentrightafterthe colon.
Ifyoutypein yourname here, the system assumes
you'rea pre-registered user of cenga.uwaterloo.ca
and will expect areal password. Instead, type the
word “anonymous” and press return. You'll be
prompted for the password:
331 Guest login ok, send ident as password.
Password:
Translated to English, “send ident as password”
means “type your Email address for your
password”. As you type, you'll notice that you
can't see what you're typing, as it doesn’t “echo”
your password. So type carefully. If you define a
macro in your term program with your Email
address you can enter this very quickly without
errors.
If you mistype “anonymous” or your Email
address, you may be able to continuewith logging
in by typing “user anonymous” and pressing
Issue 16
return, This doesn’t always work with every
Internet site, but is worth trying, If you've made
a typing mistake, it’s possible that the remote
system (in this case, cenga.uwaterloo.ca) might
“close the connection” and you find yourself
looking at the FTP prompt on your own system.
Don't panic. Try again, but type more carefully or
define macros in your term program to do the
typing for you.
On slow systems, itcan be along time between
typing a command and something happening.
Have patience. Don't keep pressing keys, that
will only make it more confusing for you. Once
you've successfully logged in, you'll see:
230 Guest login ok, access restrictions apply.
ftp>
Your cursor will be next to the “ftp>” prompt.
Moving Around and Seeing the
Sites
From here you use Unix commands to navigate.
You'll have to move to the area where the
Commodorefilesare held. On ccnga.uwaterloo.ca
you'll want to move to the /pub/cbm directory.
The command to change directories is the same
as you use on your Unix account: the ed (change
directory) command. Type:
cd /pub/cbm
Unlike Unix, when you send a command that
works the FTP utility returns a message such as:
250 CWD command successful.
or 200 PORT command successful.
After changing directories you'll want to look at
what's in it so you can decide what goodies to
download. This is where FTP takes a different
turn from Unix, as you can type “dir” and press
return OR use the Unix commands:
“Is” or “Is-al” (see Example 1).
This list is abbreviated to save space. In fact, it’s
solong, it will scroll offyour screen! You can send
a command that will show the directory and
“page” it to the screen, so you can use the space
bar to scroll each screen. The command is:
“Is -l more”
Addthis to your term program’s macros and you
can hit the macro key instead of typing it each
time you need it. A similar command is “Is -C”,
this will show you the files and directory names in
August/September 1996
multiple columns but you won't have the added
information about each file. To stop a paged
listing so you can send other commands while
seeing a filename, press the CTRL and ‘c’ keys
simultaneously.
Speaking of info, just what ARE we looking at?
Thisisa Unix directory listing. Working from left
to right, the left-most column shows the
permissions” for each file and directory. If the
very first column has a letter “d” in it, that entry
is another directory. In the above example, there
are two files, and the rest are directories. The next
column relates to the something called the “link
count”, and we can ignore it. Most Commodore
users who do much telecommunications will
recognize the name shown in the third column.
Craig Bruce is the administrator for this site, and
he is the owner of the files and directories. In
other FTP directories on cenga.uwaterloo.ca, you
will see “ftp” or “nobody” in this column. Just
after this you'll see the size of the file or directory
in bytes. The date displayed shows when the file
or directory was last modified. This can be useful
if you're planning to use FTP to stay up to date
with the files. Many people check the INCOMING
directory daily, and check the date shown next to
the directory name to see when new files have
been uploaded. The last itemis the file or directory
name. This is Unix, so the filenames are case
sensitive, Type the filenames as they appear in
the listing.
The first file in the directory is
“QOREADME”, You can read this by typing:
“more 0OREADME”, It will display one screen
at a time, and you use the space bar to see the
next. Any text file can be read this way, which
is useful for reading file descriptions, or the
rules for using an FTP site.
Let’s check out the INCOMING directory
and see what's new. To do this, we move to the
directory with the cd command we used
earlier. Type: “cd INCOMING”. Use the “Is -]
Imore” command to list the directory (see
Example 2). Here you see the same names as
were in the main /pub/cbm directory. To save
himself time, Craig set this area up so those
who upload files can put them in the
appropriate INCOMING directory. This way,
after he’s checked the files, he can move them
to the directories that fit the file category. In
other words, this is a temporary holding place
for files.
EXAMPLE 1
200 PORT command successful.
-Yw-r-r— 1 ecsbruce 5331 Apr 25 1994 OOREBADME
drwxr-xr-x 21 csbruce 512 Nov 6 19:38 INCOMING
Grwxr-xr-x 3 csbruce 1024 Nov 6 19:55 archivers
-Yw-r-r—- 1 csbruce 2048 Nov 6 22:41 ls-1R
drwxr-xr-x 4 csbruce 1024 Jun 15 21:28 telecomm
drwxr-xr-x 4 csbruce 1024 dul 26 20:42 utill28
rwxr=xr-x 5 csbruce 1536 Nov 6 22:2 util64
drwxr-xr-x 2 csbruce 1024 Nov 6 22:25 vico-20
EXAMPLE 2
INCOMING:
total 25
=rw-r-r- 1 csbruce 2145 Oct 22 18:23 QOREADME
Grwxrwxrwx 2 csbruce 512 Nov 6 19: archivers
drwxrwxrwx 2 csbruce 512 Dec 25 05:15 telecomm
drwxrwxrwx 2 csbruce 512 Jan 1 13342 unix
Grwxrwxrwx 2 csbruce 512 Feb 6 18:29 uctili238
drwxrwxrwx 2 csbruce 512 Feb 3 09:37 util6ea
drwxrwxrwx 2 csbruce 512 Nov 6 22:25 vic-20
EXAMPLE 3
cd telecomm
dir
INCOMING/telecomm: :
-rw-rY-r—- 1 csbruce 47872 Sep 16 01:42 des200-1.stx
-rw-r-I1- 1 csbruce 28160 Sep 16 01:43 des200-2.sfix
-Yw-r-r— 1 csbruce 43776 Sep 16 01:44 des200-3.sfx
-rw-r—r— Lt csbruce 20736 Sep 16 01:45 des200-4.sfx
-rw-r—-r— 1 csbruce 32768 Dec 25 05:37 wavedemo.sfx
-Yw-Y—r— 1 csbruce 366 Dec 25 05:37 wavedemo.txt
39 COMMODORE WORLD
Let's check out the INCOMING/telecomm
directory. First we change to the directory with
the cd command, then we list it (see Example 3).
Again, this directory has been shortened and
changed for demonstration purposes. Someone
uploaded the demo of Maurice Randall’s “The
Wave” terminal program on Christmas—and it
has a readme type file. You can find out what it's
all about by typing: “more wavedemo.txt”.
Now that we've found the files we want,
let's grab them, and I'll show the different
commands used when getting a text and
binary file.
Getting Files
FTP uses different protocols when sending text
or binary files, so you must tell it which one to use
whenever you get files. Send the command:
“ascii”. You'll see a message that says “200 Type
set to A”, (The A is for ASCII). Type: “get
wavedemo.txt”, and the system will respond that
it’s opening an ASCII transfer. You won't see
much until it finishes the job, but since the text
file is only 366 bytes, it won't take very long at all
and you'll see something like:
local: wavedemo.txt remote: wavedemo.txt
200 PORT command successful.
150 Opening ASCII mode data connection for
wavedemo.txt (366 bytes).
When finished, it will show:
226 Transfer complete.
376 bytes received in 0.18 seconds (2.1 Kbytes/s)
Nowwe'reready to get the SFX file. Type: “binary”
and press return. This time the message you'll see
is “Type set to 1”. The ‘I’ stands for “image”. |
know, it seems like it should say “Type set to B”
(as in Binary), but this is Unix where not
everything appears to make sense. Type: “get
wavedemo.sfx” and you'll get a message that it's
openinga binary transfer, andaftera few minutes
you'll get a message back similar to the one above.
You can’t hurt an ASCII file by transferring it
as binary, but you WILL have problems if you
transfer a binary file using the ASCII protocol.
Always remember to set the type to binary before
transferring a program or other binary file. How
do you know the difference between binary and
ASCII? Binary files are any that you would load
and run, such as programs or any files that are
archived. ASCII files are text files and usually end
with the letters “.txt’ or..‘doc’, or they have names
that are dead give-aways like “README”.
What if you want to get several files at once?
Easy. We can use the mget command (the ‘m’
means “multi”) and a wildcard. For instance, if
you want the Desterm files shown above, you
would start by typing “binary”, then “mget
FTP COMMANDS
Start an FTP session
Login as
Send ident as password
Change directories
ftp <sitename> or ncftp <sitename>
anonymous
your Email address
cd <dirname> or <dirpath>
View directory dir Is Is-al
w/paging Is -l more
columns & paging Is -C
Stop dir list CTRL-c
Read textfile more <filename>
Set transfer to ASCII ascii
Set transfer to Binary binary
Suppress prompt toggle prompt
Show progress
Get one file
Get multiple files
Put file on FTP site
Put multiple files on site
Quit FTP utility
Download using Zmodem:
Download using Ymodem:
Download using Xmodem:
Delete files after download
COMMODORE WORLD
# (hashmark or American pound symbol)
get <filename>
mget <filenam*> or mget <file1 file2>
put <filename>
mput <filename>
quit, exit or control c.
sz <filename(s)>
sb <filename(s)>
xb <filename>
rm <filename>
40
des200*”, Before transferring each file you'll be
asked “mget des200-1.sfx?”. Answer each prompt
with the letter ‘y’ for yes or‘n’ for no (ifit displays
a file you don’t want to transfer).
Once you're experienced with using Unix
wildcards you probably won't want to baby-sit
the process and answer prompts for each file. To
avoid this before using “mget”, use another
command called “prompt”. This will turn off the
questionsand thefiles will be transferred without
any stops between each file. Another useful
command is the hash mark (#). The hash lets you
see what's happening as the files are transferred.
If you give this command prior to beginning a
transfer, you'll have something to watch, and an
indication the system is indeed doing something.
Both prompt and the hash are toggle commands
—you turn them on and off by using the same
command, You need only use these once during
asession, For example, ifyou're downloading the
above files and wish to turn off the prompts and
have it display information during the transfer,
you would type:
prompt
+
a
binary
mget des200*
Sometimes getting files via FTP can be extremely
fast and efficient. Other times it can be a slow
process. This depends on the speed of your
Internet providerand how many usersare online,
along with the FTP sites’ speed, and how many
other users areaccessingit. Also, alot depends on
WHERE youareFTPing to. It's best, ifpossible, to
use FTP sites thatarenearertoyou geographically,
as thereisa noticeable lag time when transferring
files from one side of the world to the other.
We'redonewith using the FTP utility so wecan
exit it with the “quit” command. Wait a minute,
Ihearyou saying, “We didn’t download anything
yet!” You're right, we didn’t, but we will, once
we're back to using our own system.
Back “Home”
List your home directory and you'll see that you
have the wavedemo.sfx and text file, along with
the Desterm files. To download the files all at the
same time using Novaterm’s Zmodem, the
command is “sz wave* des200*”. For Ymodem
batch, use “sb wave* des200*”. If you're using
Xmodem, you'll have to download each file
individually using the “xb” and typing in the
individual filenames. You can cheat a bit by using
just enough of the file name so the system knows
which one to send, such as “wavedemo.s*”. Once
you've downloaded the files, if your system has
Issue 16
tight restrictions on how much hard drive space
you're allowed to use, you'll have to delete the
files from your home directory right away. Ifyou
don’t have strict limitations, leave the files so if
you have any problems you can try them again
without the need to FTP them again.
Once in awhile you might download a file
that doesn’t work. It won't dissolve or run,
and you've tried just about every possibility
you can think to try. Recently, I was alerted
that a file on my FTP site at hal9000.net.au
had a problem. After some searching and
comparing, I found I'd made a mistake and
forgot to type the word “binary” before
“putting” the file on the site. Because of
this the system assumed it was text and
anyone who downloaded the file couldn't
dissolve it. If you've downloaded a bad file
and know the name of the uploader (or at
very least the name of the person in charge
COMMODORE RELATED FTP SITES
Host:
ftp.rrz.Uni-Koeln.DE
src.doc.ic.ac.uk
rtfm.mit.edu
cs.dal.ca
ccnga.uwaterloo.ca
ftp.cs.tu-berlin.de
ftp.armory.com
hal9000.net.au
nexus.yorku.ca
ftp.demon.co.uk
ftp.inf.bme.hu
ftp.cs.columbia.edu
plaza.aarnet.edu.au
flubber.cs.umd.edu
nic.switch.ch
ftp.gmd.de
wilbur.stanford.edu
syrinx.umd.edu
ucsd.edu
ftp.hrz.uni-kassel.de
cs.dal.ca
wuarchive.wustl.edu
frodo.hiof.no
bbs.cc.uniud.it
ftp.rz.uni-hildesheim.de
ftp.funet.fi
sol.cs.ruu.nl
oak.oakland.edu
watsun.cc.columbia.edu
x2ftp.oulu.fi
tolsun.oulu.fi
131.188.190.131
ftp.funet.fi
ftp.eskimo.com
August/September 1996
Directory:
/usenet/comp.archives/auto/comp.sys.cbm
/usenet/comp.archives/auto/comp.sys.cbm
/pub/usenet-by-group/comp.sys.cbm/main-faq
/pub/comp.archives/comp.sys.cbm
/pub/ecbm
/pub/c64
/pub/user/spectre
/pub/cbm
/pub/Internet-info
/pub/epm
/pub/cbm/
/archives/mirror1/kermit
/pub/kermit/c
/rec/newballistic
/mirror/kermit/bin
/if-archive/games/c64
/pub/emulators/c64
/rush/systems/c64
/midi/software/c64
/pub/machines/vic-20
/comp.archives/c64
/mirrors/cpm
/pub/c64
/pub/c64
/pub/c64/
/pub/amiga/audio/misc/sid-tunes
/pub/MIDI/PROGRAMS/C64
/pub/MIDI/DOC
/pub/cpm
/pub2/cpm
/kermit2/old/c64
/kermit/bin
/pub/cbm
/pub/cross
/pub/c64
/incoming/c64
/pub/c64
/pub/c64
/pub c64/POLDI
/pub/poldi
/pub/cbm
/pub/misc/c64
/pub/kermit/c64
/u/vvoyager/Novaterm
/voyager/Novaterm/Deutsche
41
of the FTP site) send them Email and let
them know what kind of problem you are
having. If the file is bad it can be replaced
or deleted.
Reversing the Process—Putting
Files on an FTP Site
Sohow DO you put files onan FTP site? I gave the
clue in the last paragraph. It’s the reverse of
getting files from FTP sites. First, upload the file
to your home directory. Start FTP and go to the
site and directory where you want to upload the
file. Type “binary” or “ascii” depending on the
type of file, and then use the “put” command to
transfer the file to the FTP site. Ifthere’s just one
file, type “put<filename>”, orifthere are multiple
files the command is “mput file1* file2*”. Before
starting your FTP session, typeashort description
of the file or files and save it to your home
directory, then put the text file with the
description on the F'TP site too,
NcFTP
NowthatyouknowhowtodoFTP theold fashioned
“hard” way, I'lllet youin ona nicer utility. It’s called
NcFTP (pronounced “Nick-F-T-P’), you can use the
same commands with it as FTP, but this utility
automatically sendsthe “anonymous” textand your
Email address as the password for you. It keeps
track of what sites you've FTP’d to and when you
use itagain to return to asite it takes you back to the
same directory youlastaccessed. When transferring
filesit displays bar-graph that's continually updated
until the transfer is finished. It also gives an “ETA”,
or “Estimated Time of Arrival” percentage. You
start NcFTP by typing “ncftp <sitename>”. If your
Internet provider has this utility available it will
start, otherwise you'll receive a message telling you
that it could not find the utility. After you've used
NcFTP once, you can start it by typing “neftp” and
then type “open” once the utility has begun. It will
show youanumberedlist of FTP sites you've visited,
and you can type the number item of your choice
and it does the rest.
Wrap Up
Now that you know what FTP is all about, you'll
be able to use it to get all kinds of goodies.
Commodore programs aren't the only things
you'll find on FTP sites that you can use. You can
download FAQ (Frequently Asked Questions)
and other text files that cover your interests, and
you can download graphic images to view,
Remember too — it’s nice to share. If you have
PD or shareware, artwork or text files of interest
to others, share them by placing them on an FTP
site.
©)
COMMODORE WORLD
GeO
CREATING DATA FILES
H-ROGRAMMIS'T
dy Maurice Randall
Outside of GEOS, it is a simple matter to create a new file from within a
program. You begin by sending a command to your disk drive to open a
new file, and then send the data to the drive to be placed within that file.
Once finished, you close the file and the job is complete.
But in GEOS itisa different matter, at least ifit's GEOS type files that you
are wishing to create. Now, I'm not talking about your actual applications
that you create using geoProgrammer, I'm talking about having a need to
create something like a data file while your application is running. As an
example, when using geoWrite, it creates the data file that you are typing
your text into, Sooner or later, you will design an application that needs to
have the ability to create it’s own data files like geoWrite does, or geoPaint,
geoPublish, ete.
Wealready know that GEOS files are somewhat different from a normal
Commodore disk file in that they have a header block attached to them and
can also be in one of two forms, sequential or VLIR. The directory entry also
contains additional information that you normally do not see in a
Commodore disk file.
In the GEOS kernal, there is a routine called ‘SaveFile’. This is the master
routine that helps us to create files of whatever type we desire. If you have
a need to create data files from within your application, this routine will
help you do so. In the process, though, you will discover some quirks with
geoAssembler concerning the header block. Just follow along and I will
show you how to do it in a manner that works.
The Header Block
In geoAssembler, there is a directive that is used to create the header blocks
for your GEOS files. It is described beginning on page 5-50. At times, it will
seem like this directive is being used to create a mental block, rather than
aheader block. geoAssembler is very strict with this one. You must be very
careful how you format the source code in between the .header and .endh
directives,
You may have already used these to create the header file that is used
when you assemble and link an application, but did you know that you can
also embed these directives inside the source code that makes up your
application? After all, when your application creates it’s own data files, it
will need to builda header block for each of those files. That means you will
need a header block of some sort contained within your application. The
header blockisone ofthe main requirements ofthe kernal routine ‘SaveFile’.
Most of the infoitneeds is within this block of data. Don’t get confused with
these extra header blocks, they are not at all connected to the one that is
used to create your application. They are an actual part of the source code
that makes up your application.
Looking at Savefile
Let’s take a look at the routine SaveFile before going any further, There are
only about 3 things required here. First, as already discussed, you need a
256 byte area of memory that describes the header block. Then you must
point r9 at this block of memory. In rl0L, you load the desired directory
COMMODORE WORLD
42
page that you would like your data file saved to. Normally this should be a
zero so that ifthere are any empty spots on the first page, that is where your
file will go. If not, then the first available slot will get used. The GEOS
Programmer's Reference Guide states this one incorrectly. It says that a 4
here will attempt to place the file on page 4 of the DeskTop, but it will
actually go to page 5. Now, you simply do ajsr to SaveFile and your data file
is created.
Now for the Fun Part
Let's dig into that 256 byte header block again. This is the most important
thing. It’s got to be right or your data file won't work. In fact, you might not
even get geoAssembler to assemble it correctly inside your application to
begin with!
Always remember, that whatever goes in between the header and .endh
directives will end up being exactly 256 bytes long. If the code you place
there is less than this, geoAssembler will make up the difference with
additional zero bytes. That way, you don’t need to count what you place
there. But what you ‘do’ place there better be in the correct order, or
geoAssembler will make you do it over again until you get it right.
You can copy the example I have in the sidebar here and then make only
the changes you need for your own purpose. Be careful not to change the
order or the length of each item.
Let's look at each item in detail. I've begun by placing a label,
‘StartOffleader’, at the start of our header block. You can change this to
your liking. This can be used to make reference to any part of the header
block once our application is running. If we want to change the comment
that will appear in the DeskTop’s info box, we can access that as
StartOfHeader+160,
I should point out one of geoAssembler’s limitations here. There is an
equate for that offset to the comment area called ‘OFF_GHINFO_TX1".
But I've run into problems at times when equates are used along with
labels. Sometimes it seems to work and other times it doesn’t. If
StartOfHeader+OFF_GHINFO_TXT is referenced from within the same
source code file, it might work. But if from a different file, then geoLinker
must resolve the address and it may or may not do it right. You might get
an unresolved error message when this happens. The cure at this pointis to
use the actual value, such as 160, instead of the equate. This was one of the
bugs that was supposed to be fixed in geoProgrammer 2.0, but was never
released.
Now we come to the header directive. This let's geoAsscmbler know
how to assemble the code up to the .endh directive. You will end up
with 256 bytes between these two. The first two bytes of the header
block are normally $00,$FF. But for SaveFile, we need to have a pointer
here to the filename that our data file will be given. Here's another
assembler bug. No matter what you put here, it will always end up with
$00,$FF once it is assembled. But go ahead and put a pointer to a
filename here anyway. It can be a reminder for our own purpose. I'll
get back to this shortly.
Issue 16
The next two bytes describe the size of the icon. This never changes and
is always 3 and 21. A photo scrap is then placed here. And no matter what
you put here, only the first 63 bytes ofimage data will be used for the icon.
But to be safe, always cut outa scrap from geoPaint thatis 24 pixels wide and
24 pixels high. The assembler will ignore the lower 3 rows of pixels as it
generates your header block.
Next we have 3 bytes for the Commodore filetype, the GEOS filetype and
the structure type. For our example, we are creating a USR file, it isa GEOS
application data file, and it is ofa GEOS sequential structure. (We will get
into VLIR data files next issue.)
Next comes 3 memory pointers. The first one points to the start of the
data that we wish to have placed in the file. Next is a pointer to the last byte
of the data. Our example is actually going to save an entire region of
memory that is 1000 bytes long. Your own application can alter these
pointers as needed. The third pointer is not important for a data file, but
would be if our application was creating another application file. This
would be the location that would be called when the file is first loaded. A
data file is not run, so whatever is placed here is unimportant.
Next comes the permanent name for the data file. This one is up to you
however you want to name it, Each data file you create will contain the same
permanent name. This is how your application can have only it’s own data
files displayed ina file requestor box. geoWrite does this by namingit’s files
‘Write Image’. This has nothing to do with the filename that is in the
directory. GEOS can examine this permanent name and single out only
those files from the directory.
The permanent name must always be exactly 12 characters long. Ifit is
shorter, then add additional spaces to bring it to 12 characters. This should
be followed by a version number, as in the example and then 4 zeroes. For
a data file, the 4th zero is not necessarily important, but it would be for
other types offiles, That byte identifies the type of computer system the file
is intended for.
The next 20 bytes is for the author's name. Again, it is not needed for a
data file to have an author's name, Normally, an application would have
one, but this data file will most likely be partially created by the person that
is using your application. So, it is purely up to you what to put here. But |
have always found it to bea good idea to always put 19 printable characters
plus one zero byte here. Fill those 19 bytes with spaces or with your own
name padded with spaces if you'd like, just don’t put all zeroes there.
Next comes the name of the parent application. In our example, you see
thename‘OurApp_ V1.0°. This wouldactually be the permanent name that
would be listed in our own application's header block. If the user double-
clicks ona data file, the DeskTop looksat this name and finds the application
that contains this in it's permanent name string. It then knows which
application to load. If you do not want to make your data files capable of
being loaded in this manner, then fill these 16 bytes with spaces, Follow this
also with 4 zero bytes.
Next, a simple .block 23 will make the assembler generate 23 zero bytes.
This brings our header block up to a total of 160 bytes. Normally, the
comment we want to appear in the info box would come next. But anytime
I've used the .header directive in this manner, the assembler always gives
meanerrorifI placeacommenthere. So, instead, we have toend our header
at this point with the .endh directive. The assembler will put zero bytes in
the block until it has filled it up to the 256th byte.
Once our application is running, we will have to manually move the
desired comment into the header block in memory before using SaveFile.
Also, since the assembler put a $00,$FF in the first two bytes, we have to
redo that also. In fact, this should be done each time Savefile is called.
Otherwise, SaveFile will look at the address at $FF00 for a filename.
August/September 1996
43
Here's the routine that will do all this for us:
LoadW r8,#datainfo
LoadW rl,#(StartO0fHeader+168)
Idu #r8
Idy #r1
jsr CopyString
LoadW StartOfHeader,#dataName
LoadW r9,#StartOfHeader
LoadB rl@L,#0
jsr SaveFile
You will then have a data file created on the currently open disk. One of the
things you will want to keep in mind is the part in the header block that
identifies the memory locations of the data to be saved. If this area gets
relocated or changes in size, you will have to change these pointers
accordingly before calling SaveFile. Also, you will notice that added some
additional zeros to the filename at dataName. This way, we have a full 17
byte location allocated for a 16 character filename plus a null terminator.
Your application might havea need for creating more than one data fileand
so the filename here would be changed accordingly.
If you follow these rules | have outlined, you should not have any
problems. You can deviate slightly with some things, but watch out ifyou
do. The assembler just might give you errors, Next time, we will find out
how to alter the data that has been saved in a data file and also talk about
creating a VLIR data file and working with it.
©
StartOfHeader:
-sheader
.word dataName
-byte 5
-byte 21
[Place a photo scrap for an icon here]
-byte $88/USR
-byte APPL_DATA
-byte SEQUENTIAL
.word datafrea
-word datafrea+1668
.word datafrea
:byte “PermName
;CBM file type.
;GEOS file type.
;GEOS file structure type.
;start of data.
;end of data.
jinit address.
v1,0”,6,0,0,$08
-byte “Maurice Randall ”,8
-byte “Ourfapp U1.6",6,0,6,8
-block 23
.endh
dataName:
-byte “SampleData”,0,6,0,0,0,0,0
datalinfo:
-byte “This is a sample from”
-byte “Commodore World magazine.”,6
datafrea:
.block 1888
COMMODORE WORLD
Previously, we have used test-and-branch code in an intuitive manner.
When we said, “CPX #$06 .. BEQ $2055”, we meant “Compare the X
register with a value of 6; Branch if Equal to address hexadecimal $2055".
It was sensible and natural.
But the two instructions are separate and distinct. What links the result
of the CPX (Compare X) to the BEQ (Branch Equal) instruction? Answer:
the condition is recorded in the Processor Status Register. The CPX
instruction marks its results into this register, and the BEQ tests part of the
status register to see if a branch is called for. In particular, the BEQ
instruction tests a bit in the register called the Z flag; but perhaps we're
getting a little ahead of ourselves.
Having an instruction leave “condition bits”, to be tested later, has
interesting side effects. For example, the two instructions don’t need to be
consecutive. They could be separated, providing that the intervening
instructions don’t mess with the relevant status flags. Here’s another
possibility: if needed, we can carefully save the results of an operation—
that is, save the Processor Status Register contents—and bring back the
results later for testing. We'll explore both of these circumstances later.
The Four Flags
As Figure 1 shows, the Status Register has four flags which can be tested by
means of “Branch” instructions. There are eight Branch instructions, and
each of them tests one of the four status flags to see if it is on (set) or off
(clear). Two interesting things to note about the 6502/6510 branch
instructions: there's no unconditional branch; anda branch can jump only
a short distance, somewhat over a hundred bytes forward or backward.
Some instructions affect no flags at all; some affect only one or two; and
a few instructions (mostly arithmetic) can influence them all. We'll deal
with the busiest flags first.
Z- The Z (or Zero) flag is a busy flag whose condition is affected by every
instruction that modifies the contents of a data register. Thus, a Load
instruction (LDA, LDX, LDY) will set the condition of the Z flag depending
on whether or not the value loaded is zero or not. Note that the Store
instructions (STA, STX, STY) do not modify registers, and thus don’t affect
the Z flag, or any flag, for that matter. After a comparison (CMP, CPX,
CPY), the Z flag signals whether the compared values were equal or not. If
the Z flag is clear, BNE (Branch not Equal) will branch; if the Z flag is set,
BEQ (Branch Equal) will branch.
N - The N (or Negative) flag is also affected by any instruction that
changes a data register, so it’s another busy one. The term negative needs
more explanation than I can give here: I'll just say that the N flag tracks the
highest bit of the result; ifthe high bit of the data is set, the N flagis set, and
vice versa. After a comparison, the N flag takes on a fairly complex status;
don’tuseit for greater-than tests (use the C flag instead). Ifthe N flagis clear,
BPL (Branch Plus) will branch; ifthe N flag is set, BMI (Branch Minus) will
branch.
C- the C (or Carry) flag is not affected by simple data operations such as
loading a register, so it’s less busy that the previous two condition flags. Part
COMMODORE WORLD
44
PROCESSOR STATUS
REGISTER FLAGS
of the C flag’s usage is with arithmetic. After an addition (the instruction is
ADC, Add with Carry), the C flag is indeed a true carry indication: it means
there wasn’t room to hold the sum within a single byte.If you have a
multiple-byte number, you'll just move along and add the carry into the
next column (as we do with decimal addition). If all you've got is a single
byte, there’s no room for the result and you have an “overflow”. The C flag
isalso involved in subtraction, where its role is that ofan “inverted borrow”
(don't worry about that one too much until we get to math stuff). With Shift
and Rotate instructions, the C flag holds the bits that pop offthe end of the
data byte. Perhaps most importantly: after a comparison operation, the C
flag is set if the register is greater than or equal to the value it’s being
compared to.
The C flag may be directly set or cleared by using instructions SEC (Set
Carry) and CLC (Clear Carry). Ifthe C flagis clear, BCC (Branch Carry Clear)
will branch; if the C flag is set, BCS (Branch Carry Set) will branch.
V-the V (or Overflow) flag is affected only by addition and subtraction,
and by the curious BIT instruction (whose main purpose is to test I/O chip
status).Even with ADC and SBC, the V flag is usually only meaningful when
the computer is dealing with signed numbers. A sidenote: although this
won't happen in your computer, the V flagcan be hooked up to be triggered
by a hardware signal. You're not likely to use the V flag much.The V flag
may be directly cleared by using instruction CLV (Clear overflow).If
the V flag is clear, BVC (Branch overflow Clear) will branch; if the V
flag is set, BVS (Branch overflow Set) will branch.
Hoisting the Flags
Consider the following code:
2000 ADC #$@07 ;add 7 to the A register
2002 CPX #$@2 ;compare the contents of X
jto 2
2004 LDY #$0@ ;load @ into Y
2006 STA $2345 ;store the contents of A
ginto $2345
These flags cannot be tested by branch
instructions to alter program flow
Decimal Mode
Interrupt Disable
(BPL,BMI) Negative
(BVC,BVS) Overtlow
Carry — (BCC,BCS)
Zero/Equal(BNE,BEQ)
These flags can be tested by
branch instructions to alter program flow
Figure 1: The bits of the Processor Status Register (P) sometimes control
the way the computer works, Four of the bits (N, V, Z, and C), or flags as
they are often called, report the results of recent operations, and can be
“tested” by the various branch instructions to alter program flow. For
example, BCC (Branch if Carry Clear) will cause program operation to
change to a new address if the C flag contains a zero.
Issue 16
Although we won't know the contents of the registers after this code has run
(except register Y, which will contain zero), we can analyze how the
conditional flags have been affected.
The first instruction, ADC, affected all four flags: N, Z,C, and V.
But N, Z,and C will be changed by the next instruction. The second
instruction, CPX, affected flags N, Z, and C. The Z flag will be set
if the X register contains a value of two (an equals condition was
found); the C flag will be set if the value in X is two or higher. N will
be affected, but not in a generally useful way. However, the
following instruction is going to modify the N and Z flags once
more. The third instruction, LDY #$00, won't affect the V or C
flags. But the Z flag will be set (we've placed a zero in the register)
and the N flag will be clear (the high bit is not set).The last
instruction, STA, affects no flags at all.
So our situation is this: V was last affected by the ADC instruction; C was
influenced by the CPX; and the Nand Z conditionsare the result ofthe LDY
instruction.
Quick Trick: Pushing the Status Register
We mentioned that the status register could be put away and brought back
for checking at a later time. We do this with a PHP (Push Processor Status)
to save to the stack, and PLP (Pull Processor Status) to bring it back.
Here’s a useful application. If you are copying a file, say from disk to the
printer, your program needs to check the input stream for an end-of-file
condition. That condition will be logged in the status word ST, which is
located at address hex 90 on the VIC-20 and subsequent machines. (On
earlier machines, you'll find it at $96).
But the program needs to check the end-of-file condition AFTER the
outputis sent... at which time, the contents of ST have been changed by the
output activity. We need to save the end-of-file indicator as it appears when
we read a byte; but take action on its condition after the byte has been
written, Do you see the “deferred decision”?
Here’s the quick machine language code. Later, the BASIC program will
place the code at address $2000 (not an ideal site, but almost universally
available):
LOOP:
input stream to
file 1 (which has
been opened)
;connect
;logical
jalready
;Read a byte into the A
jregister
LDX $90 ;Read the status byte (at
;this time status byte will
;be @ if not end of file
sand thus, the Z flag would
jbe set)
PHP snow, that Z flag is safe
jon the stack
PHA slet’s put our input byte
jthere, too
JSR SFFCC ;disconnect input stream
LDX #2
JSR $FFC9 ;connect output stream to
;logical file 2
PLA ;bring back the input data
;byte
JSR SFFD2 stransmit it
August/September 1996
45
JSR S$FFCC ;disconnect output stream
PLP ;bring back the Z flag; if
BEQ LOOP ;it’s set, get more
Here's some Basic code to do the whole job:
100 : 162; 2532, 198,255 ;:32;,228;, 255
110 DATA 25
120
166,144,8,72
162,2,32,201,255,104,32,210,255
13@ 32,204,255,40,240,226,96
200 FOR J=8192 to 8222
210 T=T+)
220 ’
23@ NEXT J
240 IF T<>439@ THEN STOP REM DATA ERROR
30@ OPEN 1,8,3,“DATAFILE”
310 OPEN 2,4 REM OUTPUT TO PRINTER
320 SYS 8192
33@ CLOSE 2
340 CLOSE 1
Put the name ofa sequential file into line 300 (I've used “DATAFILE”). You
may change line 210 to output wherever you desire: OPEN 2,3 would send
to the screen, for example. If you have a pre-VIC-20 computer, you'll need
tochange the value 144 on line 110 (and modify the checksum value on line
240); but I'll leave that as an exercise,
$)
TABLE 1: INSTRUCTIONS AFFECTING FLAGS
Affects Z, N, C, and V
ADC - Add with Carry
PLP - Pull Processor status register
RTI - Return from Interrupt
SBC - Subtract
Affects Z, N, and C
ASL, ROL - Arithmetic shift/rotate left
LSR, ROR - Logical shift/rotate right
CMP, CPX, CPX - Compare A, X, Y
Affects Z and N
AND, EOR, ORA - Logical AND, Xor, OR
DEC, DEX, DEY - Decrement memory, X, Y
NC, INX, INY - Incrememt memory, X, Y
LDA, LDX, LDY - Load A, X, Y
PLA - Pull A from stack
TAX, TAY, TXA, TYA - Register transfers
TSX - Transfer Stack pointer to X
Special
BIT (N, V, Z) - Test bits at address
CLC, SEC - Clear/Set Carry flag
CLV - Clear overflow flag
Affects no conditional flags
BCC BCS BEQ BNE BMI BPL BVS BVC - all Branches
BRK - Break
CLD, SED - Clear/Set decimal mode
CLI, SEI - Clear/Set interrupt lockout
JMP, JSR - Jump, Jump to subroutine
NOP - No operation
PHA, PHP - Push A, Push procesor status regiser to stack
RTS - Return from Subroutine
STA, STX, STY - Store A, X, Y
TXS - Transfer X to stack pointer.
COMMODORE WORLD
FeEniPHe&RAtL.
Before the VIC-20, Commodorecomputers talked
to peripheral devices using a parallel bus called
the JEEE-488 or GPIB, Subsequently, this was
replaced by a serial bus. The principles of the two
were the same.
Some of what follows may be differ slightly if
you're using some form of “fast bus”, such as
JiffyDOS. But the description will be generally
valid.
About the Bus
A bus may be loosely defined as a collection of
wires that connect several different devices. The
Commodore bus design connects the computer
with a number of peripheral devices, mostly disk
drives and printers. The original (parallel) design
was based on the GPIB (General Purpose Interface
Bus) designed by Hewlett-Packard, later adopted
as international standard IEEE-488.
Hewlett-Packard’s objective was to allow
instruments to be linked together, perhaps with
a computer included. There was no central
control: any device could be made master of the
bus and command the others; the device might
later give up control in favor of another. There
were also polling modes defined, where the
controller could send out a query, asking if any
device had anything interesting to report.
The first Commodore PET and CBM computers
kept faithfully to the Hewlett-Packard design, In
fact, some users connected GPIB instruments to
these early computers for process control and
monitoring. Commodore deviated slightly in a
few areas. The computer used an economical
edge connector, rather than the more elaborate
(and expensive) standard IEEE-488 connector.
Commodore decided that the computer would
be the only controller on the bus. Features suchas
polling were rarely used (an early Commodore
acoustic modem was the only device that
recognized polling). Commodore peripherals
were simplified, but made less efficient, by having
them lock out the bus when they were busy,
In the pioneer days of the first home
computers, Commodore's bus design was
sophisticated and brilliant. Over the years,
though, the rest of the industry moved toward
discrete connections: the Centronics interface
COMMODORE WORLD
for printers, RS-232 ports for modems, and
dedicated controllers for disk drives. The switch
to the serial bus slowed things down, and
Commodore started to be left behind, But give
our guys credit: in those first days when no
standards existed, Commodore introduced a
remarkable design with their peripheral bus and
intelligent devices. And todays mainstream
computer industry seems to be about to
rediscover the concept of a peripheral bus.
How the Wires Work
This description applies to both the IEEE-488
and theserial bus. All wires connect toall devices.
The bus has no “direction”—every device, in
principle, can place a signal on a wire which will
be seen byall devices. To bea little more technical:
every signal wire on the bus is normally held high
at around five volts (logic 0 in negative logic); but
any device can pull the voltage Jow to ground
(logic 1), and this changed level will be seen by all
devices. In fact, several devices could be pulling
the voltage low; only one is needed to do the job.
Because “everything connects to everything”,
a bus can be extended by means of Y connectors.
Usually, the serial bus uses the two-connector set
on disk drives to continue the hookup to other
devices. The IEEE-488 bus uses a male/female
combination connector that allows extra cables
to be easily hooked in.
OOo
Computer and Peripheral Devices
Figure 1: The computer and its peripherals are
connected by a common bus. All wires connect
to all devices; the computer could be anywhere
in the chain.
Information (data) flows over the data wires:
there are eight of these on the IEEE bus, but only
one on the serial bus. To help the data move,
there are additional control wires—often called
handshaking lines—that help the timing of the
data and acknowledge data receipt. These are
carefully planned: only one device can send at a
time, but several can be receiving data
simultaneously.
46
THE PERIPHERAL BUS
This capability to broadcast data to several
devices is important. It’s especially needed for
device selection, where the computer calls all
devices and instructs one to stay connected, the
others to drop off the line for the time being.
The attention (ATN) line is used for this
selection. When the ATN line is pulled low, all
devices listen to see if they will be involved in the
following data transmission.
The Selection Mechanism
When ATNisset TRUE (low) by the computer, all
other devices start to watch for incoming data
signals. The computer sends one or more
characters, which might mean such things as
“device 4: listen” (one character); “device 8,
secondary address 2: talk” (two characters); or,
“device nine, secondary address 5: open file DATA
for reading” (about six characters).
The major commands that are sent are TALK
and LISTEN, which are bundled with the
corresponding device number. The device
numberis specifiedin the lowest 5 bits (0 through
4) ofa byte (see Figure 2a) and can containa value
from 4 to 30. While these five bits could actually
holda value of 0 through 31, the values 0 through
3and 31 all have special meanings. Bits 5 and 6 of
the same byte are used to indicate LISTEN and
TALK, respectively.
TT [ie J tevice Number 30) |
Figure 2a: Device selection byte. The first byte
sent after ATN has been pulled low. T controls
TALK; L commands LISTEN; Device number
31 controls UNTALK and UNLISTEN.
SNCS)
Figure 2b: Secondary address control byte.
Optional; sent after the device selection byte.
Control codes (in binary):
1111 - OPEN
1110 - CLOSE
0110 - data
To tell device 4 to listen, a value of $24
(hexadecimal) is sent. This presents a bit pattern
of 00100100. Device 4 would be asked to TALK
with a value of $44 (hex) although since that
device is usually a printer, it’s not likely to say
much. The reverse commands, UNTALK and
Issue 16
UNLISTEN, typically carry a device number of
31, which means that UNLISTEN sends hex $3F,
and UNTALK sends hex $5F.
The TALK or LISTEN command may be
followed by a secondary address signal. This byte
will carry not only the secondary address (from 0
to 15), but the high nybble will signal whether
this transmission will open a file, close a file, or
transport data. OPEN is signaled by ahigh nybble
of $F (hex), CLOSE by a high nybble of $E, and
other data activities by a high nybble of $6. So, to
ask device 8, secondary address 3 to send more
information from an already open file, the
computer would send two bytes while ATN is
pulled low: $48 and $63 (hex) . The first byte
($48) would mean “talk, device 8”, andthe second
($63) would be “data, secondary address 3”.
A file name may be sent if the operation is an
OPEN, but that will happen after ATN is turned
off, so the information classifies as regular data.
The Byte Exchange
The mechanism is the same whether or not the
ATN mode is active. The bits are transmitted
eight at a time, over eight wires, on the IEEE-488
bus. On the serial bus, the bits go over a single
wire, one at a time, with a “clock” line signaling
that each bit is ready. After a byte is sent, the
sender waits for an acknowledgement.
The acknowledgement system has to be
planned carefully, since there may be more than
one receiver. On the IEEE bus, the
acknowledgement is sent with a signal on the
NDAC (“Data Not [yet] Accepted”) line. As long
as any listening device holds this connection in
the TRUE (low) state, the byte transmission will
be considered as “not complete”. With the serial
bus, it's done in a trickier way: the receiving
device pulls the data line TRUE (low) to
acknowledge that a byte has been received; later,
when all receiving devices have released the data
line to FALSE (high), the next byte can be
transmitted.
There needs to be a way for the talker to signal,
“This is the end of the data”. The signal is most
often used to indicate the end ofan incoming file.
On the IEEE-488 bus, a separate line (EOI, for
“End or Indicator”) is used. On the serial bus, the
condition is signaled by an additional handshake
before the last byte is sent.
Tracking Bus Events
Let’s try to follow the actions on the bus when the
following three Basic statements are executed:
OPEN 1,4
PRINT#1,"HELLO"
CLOSE 1
August/September 1996
OPEN 1,4: The computer sends
NOTHING to the serial bus. If the Basic
statement had contained a secondary
address or a file name, then the bus would
have been opened and commands and data
sent. As itis, the computer simply makes a
note in its internal file tables.
PRINT#1,"HELLO": This takes place in three
steps. First, the computersignals “Device 4, listen”
by turning ATN onand sending one byte, hex 24;
then ATN is turned off. Device 4 is now in the
IEEE-488 Connector
211109 8 7654321
24 23 22 21 20 19 18 17 16 15 14 13
PET/CBM IEEE-488 Port
7 8 9 10 11 12
TABLE 1A: IEEE-488 Bus Pinouts
DIO1
DIO2
DIO3
DIO4
EOI
DAV
NRFD
NDAC
IFC
SRQ
ATN
GND
DIOS
DIO6
DIO7
DIO8
REN
GND
GND
GND
GND
GND
GND
Data Input/Output Line#1
Data Input/Output Line#2
Data Input/Output Line#3
Data Input/Output Line#4
End or Identity
Data Valid
Not Ready For Data
Data Not Accepted
Interface Clear
Service Request
Attention
Chassis ground (cable shield)
Data Input/Output Line#5
Data Input/Output Line#6
Data Input/Output Line#7
Data Input/Output Line#8
Remote Enable
DAV Ground
NRFD Ground
NDAC Ground
IFC Ground
SRQ Ground
ATN Ground
Data Ground
=
COONOUhWN —
OONOORWND —
—
_
12
A
B
Cc
D
&
F
H
J
K
L
M
N
TABLE 1B: Serial Bus Pinouts
SRQ
GND
ATN
CLK
DATA
RESET
Serial SRQ in
System Ground
Serial ATN (attention)
Serial data clock
Serial data
Resets all devices
47
“listen” mode, while all other connected devices
are deaf. The second step is to send the “HELLO”
data: the characters go out to the bus one at a
time. Because of the way BASIC works, a RETURN
character will also be sent. Finally, the ATN line
goes on again, and an UNTALK signal is sent to
the bus. All devices are effectively offline now.
CLOSE 1: The computer notes that logical
file number 1 does not have a secondary
address associated with it. NOTHING goes to
the serial bus, but the file entry for logical file
1 is scrapped. If the file did have a secondary
address, the device would have been selected
and the CLOSE signal sent.
That CMD Command
No, we're not talking about the company, but
about the BASIC command CMD. Here’s what
CMD does: it sends a LISTEN to the device
concerned, and then leaves the bus wide open.
At the same time, anything that would
normally be directed to the screen will be
redirected to the bus.
So if we want to get a hard copy of a BASIC
program, we might type the sequence:
OPEN 4,4: CMD 4: LIST: PRINT#4 : CLOSE4
A quick rundown on what the commands do:
OPEN 4,4: as before, nothing goes to the bus,
but an entry is made in the computer's “active
file” list.
CMD 4: LISTEN is sent to device 4, and
the bus is left open. Any output that
normally would go to the screen will be
redirected to the bus. The printer just sits
there and listens for data.
LIST: The program listing would
normally come to the screen, But since it’s
redirected, it flows out to the open bus,
where it will hopefully be printed. The bus
remains open.
PRINT#4: The three steps: send LISTEN;
senda RETURN character; send UNLISTEN.
That last item is the one we want: it closes
the bus, and restores output to the screen.
CLOSE 4: No bus activity. The file is
removed from the computer's “active file” list.
Conclusion
The two bus systems, although mechanically
different, use the same logic to communicate
between computer and device, At some future
time, we might go into details of the serial bus
signals and timing.
%)
COMMODORE WORLD
SASiC
INS TING TS
Last issue we looked at fractals from the point of view of self-similarity.
Triangles within triangles, leaves within leaves. This month, we continue
our look at fractal objects, but in the area of dynamic systems. Although
there area few definitions for the word dynamic, the one we are concerned
with here refers to a continuously changing system, An asteroid in the far
reaches of space is nota good example ofa dynamic system, buta pendulum
is. One simple example of a dynamic system is found on your calculator.
Punchin thenumber 1.1,andpressthe squaring key. Eventually, itoverflows,
but not before you see a wild progression of numbers, each depending on
the previous input, which was the result of the input before.
Dynamic modeling and equations are a means of analyzing the real
world, If something exhibited X*X growth, pressing the square key on a
calculator would model it exactly, and allow someone to make forecasts.
But as in the old joke ‘you can’t get there from here’, there is no direct path
for answers. To estimate what the answer is after the seventh keypress, you
have toenter the 1.1, and press seven times. This is an example of sensitivity
toinput. Looking at the example of the calculator again, I can enter 1.1, and
press the square key. Along the way to overflow, | notice the number
2.14358881, which I note down. Later, in repeating the sequence, | figure
I'll save time and a few keypresses by just entering 2.14 instead of 1.1. The
result? By the time I overflow, the difference between this new pattern and
the older one is 65%. Rather than an error of 3/1000 remaining small, it
grew surprisingly large. Even if entered the full number 2.14358881, there
would be a variation eventually (the display is still not exactly the same as
the number stored in the calculator). ‘This extreme sensitivity to input
means | can’t repeat the sequence exactly without starting from the
beginning.
This was the problem experienced by Edward Lorenz, a man who later
went on to work on Chaos theory, When he was a meteorologist, he felt it
was possible to predict the weather with equations. After coming up with
amodel that he felt satisfactorily reflected the weather, he then proceeded
to rerun it from a later point in the simulation (as in the example with the
calculator). Although the numbers were only off by thousandths from the
computer's numbers, the small error quickly changed the results wildly. It
was this problem of small effects having a large influence that is reflected in
the phrase ‘butterfly effect’—since small effects make such a difference in
the weather (as well as other dynamic systems) it might well be that the flap
of a butterfly’s wings could start a hurricane.
This same sensitivity to input is at the core of fractal art. Two adjacent
points on the screen could be different colors, representing different results;
the points may differ by only small fractions, but the dynamic equations
they represent are sensitive to input, leading to the differences. There's no
COMMODORE WORLD
48
DYNAMIC FRACTALS
Program listings provided in this
article are for the C-64 or
C-128 in 64 mode.
equation we can use to enter “Thursday the 10th of March” and get back
“sunny, mild”, but with the C64, we can explore the dynamic equations that
form the basis of much of the fractal artwork you see today.
Complex Ways of Looking at Things
When I press the square key, the number 1.1 moves toward infinity.
Likewise, all numbers above one do the same (and for negative numbers,
those less than minus one). And between one and minus one, all numbers
move toward zero. We can get a visual feel for this behavior by plotting the
results onaline. For every point we test, we mark itblack ifit goes toinfinity,
red ifit goes toward zero, and white ifit heads nowhere. (one and minus one
are the only examples of the latter). The line we draw would soon bealength
of black, with two white dots, anda piece of red in the center. Although not
very interesting, it does show with one picture the dynamic system that is
our calculator’s squaring key.
But how do we get all those pretty pictures in books on fractals? They
obviously don’t use a line. What they do is model different dynamic
systems from different views. But the one thing they have in common is
their use of the complex plane to plot results.
For those who are in need of a refresher, the complex plane is a two-
dimensional representation of complex numbers. And what are complex
numbers? They are numbers that contain both a real and an imaginary
part. Imaginary is the unfortunate term applied to numbers that are
multiples of the square root of negative one. Since there is no real-world
example of a square root of a negative number, ‘imaginary’ seemed to fit.
Now however, I'msureit only serves to make mathematics more confusing.
The rules for imaginary numbers are simple—let the letter i represent
the square root of minus one. Then all imaginary numbers are multiples of
this value. The square root of -16 is 4i, -25 is 5i, and so on. Multiplying two
imaginary numbers resultsin the i's being multiplied as well, leaving minus
one; 20i* 15i=-300, and 3i*7i=-21.
Real numbers and imaginary numbers are linked in mathematics. A real
number can have an imaginary part, and vice versa. Because i cannot be
reduced further and combined with the real part, they arejoined witha plus
symbol:
2.34451
042i
15.440
Asin the examples above, ifanumber is missing an imaginary ora real part,
that coefficient is zero.
Issue 16
The C-64 does fractals using FRACDRAW.BAS ®
Displaying these numbers is where we get the graphs for fractals. By
convention, the imaginary part is along the Y axis, with the real part plotted
along the X axis. The result is that a number gains a two-dimensional
quality. For example, 5+2i would be a point placed at X=5 and Y=2.
Likewise, the point at X=3, Y=4 would be the complex number 3+4i.
Julia and His Sets
Now we have the tools to discuss fractals. In the first quarter ofthe century,
a mathematician named Gaston Julia was examining the dynamics of
complex numbers. Unlike our little graph of the calculator square key
squaring complex numbers is much more interesting. Take for example:
2 + 3i
x7 + Si
As in polynomial math, the result would be each part of the top multiplied
by each part of the bottom:
The i*i resulted in minus one, leaving :
14+16i1+211+24*i*1=14+371-24=-10+37i
Working with complex numbers, Julia eventually settled on a rule that
would result in an interesting system:
1) take a number from the complex plane, z, and square it
2) add a complex number constant c to the new value of z
3) repeat steps one and two with the new value of z, until you're sure it’s
going toward infinity or not
Step three, testing for infinity, isn’t as awkward as it sounds. Ifa complex
number's absolute value goes over two, it is destined for greatness. This
output
zreal=x/160*2*rangex-rangex
part of point
zimag=(1-y/200) *2*rangey-rangey
imaginary part of point
zimag+creal
empb=2*zreal*zim
zreal=tempa:zimag=t
into z
count=count+1
rem test z if heading for
if count done
sqr (zreal*zreal+zimag*zimag)<2 an
then 9@
14@ rem here plot color to x,y based
Size of count
15@ next next
on
August/September 1996
49
solves one problem, butadds another; whatisa complex number's absolute
value? Itis the distance from the origin (complex number 0+0i) to the point
in question. Looking ata graph, it would be the hypotenuse ofa right sided
triangle of height Y (the imaginary part) and length X (the real part) , or the
square root of (Y*Y+X*X).
With all these details in place, let’s look at the code fragment given in
FRAGMENT.BAS. This routine squares a complex number and adds a
constant. It repeats this up to 31 times (line 130) or until the absolute value
is greater than two. |fit passes this limit, a color is plotted on screen at that
point, representing how long it took to fly off. Typically, black is for the
quick flyers, and white is reserved for those that never fly away (at least after
testing here 31 times).
Lines 90 and 100 do the squaring. From the earlier example, multiplying
each complex number results in four multiplications. Adding the constant
adds another operation, These lines are a simplification of the product of:
AG*i) +(CREAL+CIMAG)
In displaying fractals, two colors are rarely used—much of the interest
comes from the boundary, as numbers more quickly head toward infinity.
Using COUNT in the example above, up to 31 different shades could be
used; for the C64, only two (high resolution) or four (medium resolution)
are available, so scaling is done.
Viewing Gaston’s Discovery
The final program for fractal drawing is FRACDRAW.BAS. Medium
resolution is used, giving four colors and a better look to the output. The
program also makes heavy use of machine language for speed. Withit, a full
screen fractal can be displayed in under four hours, depending on
complexity. [Note: FRACDRAW.BAS has been modified to add optimization
for SuperCPU users, reducing drawing time down to about half an hour, These
changes will not affect computers that are not SuperCPU-equipped. -Ed.]
Here are some notes concerning the program. Firstly, lines 135 and 140
cannot be moved. To simplify the machine language, I had the routine grab
information from the first five variables in memory. The CLR at line 135
guarantees the variables at line 140 are the first to be initialized, but if you
insert other variables, or move the lines, it won't work,
The black background is set at line 115 (POKE 53281,0). The variables
Cland C2 at line 145 are the middle shades of gray, and the value poked to
54272+1 is the white color. Feel free to adjust them.
COMMODORE WORLD
Line 155 is where the complex constant (CR and Cl) is initialized, as well
as the range (DX and DY). The range represents how far off-axis the view is:
0.8 means the display stretches from X=0.4 to X=-0.4, with the same for Y.
Try the program as it is, and you will get a nice fractal display in under
four hours. Depending on the fractal, other displays will be quicker.
Modifying the program can involve changing the constant (CR and CD), the
loop (more loops mean sharper detail, but more time plotting), and size
(try limiting X and Y toasmaller portion of the screen, or use STEP 2 inline
160 to plot only every second pointasa fast way oflooking at a fractal). Also,
the viewing range can be adjusted with RX and RY. Smaller values will show
greater detail, but don’t set it above RX=4 or RY=4. (can you guess why?)
Some examples of CR and CI values to try are:
CR cl
+0.300 0.500
-0.122 0.745
-0.754 0.049
+0.354 0.536
-0.744 0.097
-0.756 0.097
-0.756 0.297
+0.736 0.097
+0.766 0.097
The program, by the way, plots what is called the Julia set—the set of
complex numbers that will grow increasingly large as they are repeatedly
squared anda constant added. The constant makes all the difference. Ifyou
have the time, set the constant to zero and see what happens (see if you can
predict it in advance). The white section represents the'prisoner set'—
numbers that will not go toward infinity as you perform the calculation.
The other colors form the ‘escape set’ (for obvious reasons) with the colors
indicating the speed they head toward infinity.
For the Julia sets, CR+Cl is set by you, and ZR+Z1 is initially set to the
point being plotted. But what would happen if you were to set CR+CI to the
point being plotted, and ZR+ZI to zero? Then the plot would be effectively
the escape set for all Julia sets, for every constant input. This result is the
familiar Mandelbrot set. To see it, add the line:
163 CR=ZR:CI=Z1I:ZR=0:Z1=0
Summary
The Mandelbrot set and Julia sets are just a few examples of dynamic
systems on the complex plane. In each case, complex numbers lend
themselves to interesting and striking displays. But are they fractals?
Recently, mathematicians proved that at least the Mandelbrot set is. Even
though it can look like there are pieces disconnected from the main mass,
in reality everything is one object, connected by filaments, with of course
the fractal’s extremely high perimeter length (probably infinite, but I'm not
sure if that’s been mathematically proven).
Fractals of all sorts provide an insight into life that we normally don’t
explore. One picture shows the dynamics ofa whole system, and enlarging
the detail only adds to the richness. That there is beauty in what we see is,
I think, the most interesting aspect of all. Esthetics are determined by a
number of factors. Are we programmed in some way to appreciated fractal
geometry? Is it familiar in the day-to-day world, and so we find the familiar
comfortable and pleasant? In any case, with these programs, you can
explore the fascinating world of fractals, and decide for yourself.
%)
COMMODORE WORLD
50
1@® rem julia set fractal display
162 rem
105 print "poking": fori=49152t049522: read
x:pokei,x:c=x+c:next:ifce<>34343thenstop
110 rem set up medium res screen
115 poke 53280,7:poke 53281,
120 poke 53270, peek (53270) orl6
125 poke 53265,peek (53265) or32
130 poke 53272,peek(53272)or8
135 print" (CLEAR/HOME}";:dim i(3000):clr
140 zr=@:zi=O:cr=@0:ci=@0:n=5: f=6:m=49152
145 ¢c1=12:c2=15: fori=1024t02023:poke5427
2+i,1:pokei,cl*16+c2:next:rem do colors
15@ poke 53280,@:rem signal-ready
155 cr=-@.756:ci=@.197:dx=.8:dy=.8
160 for x=@ to 159:for y=@ to 199:zr=x/8
@*dx-dx:zi=(2-y/100) *dy-dy:n=32
162 poke53367,@:rem supercpu optimizatio
n off
165 sys m,x,y,£/8:if peek(198)then x=1le9
167 poke53366,@:rem supercpu optimizatio
non
17@ next:next:poke53367,@:rem supercpu o
ptimization off
175 wait 198,7:getxs$
18@ print" {CLEAR/HOME}":poke53265,27:pok
e 53272,21:poke5327@, 200
530 data 76,140,192,76,14,192,76,120,192
7641285 292 234,234 :32i:64192y.1335:4
540 data 32,6,192,133,5,74,74,74,72,133,
3,74,74,24,101,3,133,3,104,10,10,10
550 data 10,10,10,133,2,24,165,5,41,7,10
1,.2,133,,2, 144,2,230,3,165,4,,41,252
560 data 72,24,101,2,133,2,144,2,230,3,1
04,24,101,2,133,2,144,2,230,3,24,169
576: data 32,101;3 4133, 3,32, 6,192,413, 72
,165,4,41,3,73,3,170,104,224,0,240
580 data 5,10,10,202,208,251,160,0,17,2,
145,2,96,32,253,174,32,158,183,138
59@ data 96,24,101,45,72,165,46,105,@0,16
8,104,170,96,169,30,32,9,192,32,162
60® data 187,32,155,188,165,101,133,2,16
92.32; 9:;192), 32,162,187; 169,2;;32;,9
61 data 192,32,40,186,169,37,32,9,192,3
2,212,187,169,9,32,9,192,32,162,187
620 data 169,9,32,9,192,32,40,186,32,180
p191,169,37,32,9,192; 32, 103,184,169
630 data 16,32,9,192,32,103,184,169,37,3
2,9,192,32,212,187,169,2,32,60,188
640 data 169,9,32,9,192,32,40,186,169,2,
32:4.9y192,32,:40,.186,169),.23,32,94192
65@ data 32,103,184,169,9,32,9,192,32,21
2,497,169. 3:7',.32',9),.292, 32,462,187 .:169
660 data 2,32,9,192,32,212,187,169,2,32,
9,192:,32,.162,.187,,169),:2',.32,:9,:192',.32
670 data 40,186,169,37,32,9,192,32,212,1
87,,,169,,9,32,'9,192,32,162;,,187,169:,:9
68@ data 32,9,192,32,40,186,169,37,32,9,
192,32,103,184,169,37,32,9,192,32,212
690 data 187,169,4,32,60,188,169,37,32,9
,192,32,91,188,201,1,208,7,198,2,240
70® data 3,76,155,192,165,2,32,60,188,16
9,37,32,9,192,32,212,187,76,3,192
always SA VE
before you RUN
Issue 16
CHECKSUM
Commodore World’s Program Entry Checking Program
and Tips on Entering Programs from this Magazine
CHECKSUM isa program that proofreads your typing when you enter a listing from
the magazine. It assigns a numerical value to each character that you type, adds up
the values of the line you typed and displays the sum. (Checksum, therefore, means
that it checks your typing by summing the characters.) It also verifies that you have
typed the characters in the proper order, (Checksum won't tell you ifyou missa line
of code entirely, so verify that yourself.) Checksum runs “in the background” when
you type in lines of program code. Whenever you type a line and press RETURN,
Checksum will display a value. Compare that value to the value published next to
the line of code in the magazine. If the numbers match, you've typed the line
correctly, Simple.
Typing in CHECKSUM
First, type in Checksum carefully from the listing on this page. Be sure to press
RETURN after every line to enter it into memory, Once you have typed the program,
save it, In fact, save it a few times while you're typing, just to be safe. (This is good
advice whenever you type in a program. I usually change the name each time I save;
forexample, Checksuml, Checksum2, andso on.) Double-check your work, making
sure that you've typed in every line and that you've pressed RETURN after every line
you've typed, Ifyou make errors when typing in Checksum, a test run of Checksum
will tell you which line is incorrect. (This safety feature works only in the Checksum
program itself, and does not apply to any other listings in the magazine.) Whenever
you find a typing error (in any program listing), fix it, press RETURN to enter the
change, save the program again and try another run. Repeat this process as often as
necessary. Important tip: Don't get discouraged if the program won't run. Be
patient. Be thorough, It will work eventually, You'll know your Checksum is ready
when you see the line:
TO TOGGLE ON OR OFF, SYS XXXX
Entering Programs Using CHECKSUM
When you're ready to type in your first listing from the magazine, load and run
Checksum. Make a note ofthe number that is displayed on the screen (49152 for the
C-64; 3328 for the C-128). To activate and deactivate Checksum, type SYS followed
by that number, then press RETURN, You need to have Checksum active whenever
you're typing in a listing. Checksum must be deactivated, however, when you run
the new program. The next step is typing in a new program listing as it appears in
the magazine.
As you begin, you'll notice that to the left of the start of each line is a number.
Don't type this number in: It's simply the Checksum value. Stop typing at the end
of the program line and press RETURN. If you've typed the line correctly, the
number displayed on the screen will match the Checksum value. If the numbers
don't match, you've made a mistake. Check the line carefully, make your changes
and press RETURN, The computer won't know you've made a change unless you
press RETURN on the changed line to enter it. A few type-in hints: The Checksum
does not verify blank spaces in the program lines unless they are within quotation
marks, because adding or omitting such spaces will not affect the operation of the
program. The exception to this is hexadecimal Data statements. These are the Data
statements, such as this one, that don’t have commas:
100 DATA 12345678901234567890*123456789012345
67890*12345678901234567890*
In statements such as these, you must have one space between the word DATA and
the numbers that follow. Checksum will not catch that error.
August/September 1996
51
Special Key Combinations
As you type, you may be confused the first time you see curly braces {}. These braces
mean “perform the function explained within.” For example, {22 SPACES} means
that you need to press the space bar 22 times. Don’t type the braces (you can’t, of
course, because there are no curly braces in the Commodore character set), Here are
some other common examples:
{CLEAR/HOME} hold down the SHIFT key and press the CLR-HOME key.
{2 CRSR DN} tap the cursor down key twice.
{CTRL i} hold the CONTOL key and press the I key.
{CMDR t) hold down the COMMODORE key and press the T key.
Continue typing in your program, saving often and checking each checksum value
with the one in the magazine, until you've finished the listing. Phew! So now you're
ready to run your program, right? Not quite. First, save it. Second, deactivate
Checksum by typing SYS followed by 49152 for the C-64 or 3328 for the C-128. Now
youcanrun. Don’t be discouraged if you still get an error. It happens. Use Checksum
faithfully. Be patient. Be thorough. It will work eventually,
®%)
CHECKSUM
rem cw checksum
mo=128:sa=3328
if peek(65533)<>255 then mo=64:sa=49152
i=@:ck=0:ch=0: ln=300
40 for k=@ to 16
beet
6@ read b:if b>255 then goto 280
ch=ch+b:poke sa+i,b:i=i+l
) next j
le<>ch then goto 28¢
pokesa+110, 2
pr intchr$
pr int
240: pokesa+111, 38:pokesa+140,234
(147) sprint"cw checksum";str$ (mo) sprint
to toggle on or off, sys";sa:if mo= gril then 27
okesa+15,165:pokesa+25, 12 26,
i)
16
ie)
r in line"’;1n;"!":end
rem be not phone these data statements!
data 120,162,24,160,13,173, 4,3; 201,24, 884
data
@,141,0,255,133,17¢
pore en 1]
240,58,201,48, 144,7
232, 208, 240, 189, 0
34,6 SF We
) data
data
data
478
data eee
data
COMMODORE WORLD
Usar troup counzedion
Looking fora Commodore user group in your area? User groups can help you solve problems, keep
you informed of new products and events that might be of interest, and give you a chance to share
your computing experiences with others who enjoy Commodore computing. The following are
confirmed groups and verified addresses, registered with Commodore World.
Z \@l0ye
are.
your local
ALABAMA NEBRASKA
H.A.C.K.S., 9408 Lynn’s Terrace, Huntsville, AL 35802
CALIFORNIA
South Bay Computer Groups, PO Box 189 ,Chula Vista, CA
91912-1899
Southeast San Diego C-64 User’s Group, 9830 Dale Ave. #24,
Spring Valley, CA 91977-2445
Commodore Technical User’s Group, 2231 E. Trenton Ave.,
Orange, CA 92667-4451
Civic 64/128, PO Box 2442, Oxnard, CA 93034
COLORADO
Colorado Commodore Computer Club, 12246 Monroe Place,
Denver, CO 80241
FLORIDA
Fort Walton UserGroup, 221 Baker St, Fort Walton Beach, FL
32548
Lake/Sumter C.U.G., PO Box 416 , Leesburg, FL 34748
GEORGIA
Stone Mountain User's Group, 703 Waldan Walk Cir., Stone
Mountain, GA 30088
ILLINOIS
Illinois Commodore Users, P.O. Box 781, McHenry, IL 60050
Sandwich Computer User Group, PO Box 23, Sandwich, IL
60548-0023
Commodore Club of Rockford, PO Box 6341, Rockford, IL
61125-1341
MARYLAND
Meeting 64/128 Users Through the Mail, 4427 39th Street,
Brentwood, MD 20722-1022
Gaithersburg Commodore User’s Group, P.O. Box 5712,
Durwood, MD 20855-0712
N.LS.T, 3124 Pheasant Run, Ijamsville, MD 21754
COMMODORE WORLD
oa
Greater Omaha Commodore User's Group, PO Box 241155,
Omaha, NE 68124-5155
TEXAS
Crestview Computer Club, 401-A Northern Dove Ln. ,Coperas
Cove, TX 76522-8432
VIRGINIA
NOVACOM, 9206 Annhurst Street , Fairfax, VA 22031-1902
Washington Area CUG, 7728 Viceroy Street, Springfield, VA
22151
VERMONT
Green Mountain Commodore User’s Group, PO Box 6087,
Rutland, VT 05702-6087
WASHINGTON
Island Commodore User Group, 1675 N. Rientjes Ln ,Oak
Harbor, WA 98277
Vancouver CUG, 1903 E. 9th St. ,Vancouver, WA 98661
WISCONSIN
Milwaukee Area Commodore Enthusiasts, PO Box 26216,
Milwaukee, WI 53226-6216
Computer Users Support Group, PO Box 085682, Racine, WI
53408-5682
CANADA
TPUG, 3605 Lakeshore Blvd. West, Box 48565, Etobicoke,
Ontario, Canada M8W 4Y6
NEW ZEALAND
Christchurch Commodore Users’ Group, P.O. Box 4665,
Christchurch, New Zealand
2 Issue 16
GEOCABLE Il
Parallel Print Cable
E X P A N OD
YOUR SYSTEM
3 SLOT CARTRIDGE PORT ©&XPANDERS
The EX2+1 and EX Cartridge Port Expanders bring new
expandability to you Commodore 64 or 128. Combine the
use of compatible cartridges. Disable cartridges notin use.
Change the address your computer finds a cartridge at.
Avoid the constant changing of cartridges that puts extra
wear on your cartridge port. The EX3 offers 3 vertical
expansion slots, while the EX2+1 provides 2 vertical slots
and 1 horizontal slot. Both units offer 7 switchable signals
per slot, address mapping on slot 2, and a reset button.
CALL 1-300-633-3263
<1
ee tie ime
The Most Advanced Parallel Print Cable Ever!
¢Uses Standard Cable ¢ Faster Output
Equipped with a female DB-25 Parallel printing offers up to a
cable connector to allow use of 40% increase in output speed.
standard 'PC' printer cables. ¢ GEOS Drivers Included
* Switchable Pass-thru Includes GEOS drivers plus
Allows connection of printer and useful GEOS utilities like
other user port peripherals such MacAttack II, WrongisWrite, and
as modems without conflicts. GEOS CONVERT.
GEOCABLE-II (6 ft.) ONLY $29.00 GeoCabie Il is compatible with GEOS, Pertect
GEOCABLE-II (15 ft.) ONLY $34.00 Print LO, Action-Replay MK VI. Superbase.
Shipping: US $5.00, Canada $7.00, Superscript, Paperciip Ill, and all software that
Foreign $25.00, Supports User port parallel printing.
P.O. Box 646 Orders: 800-638-3263
ChAD East Longmeadow, MA 01028 Info: 413-525-0023
Need Input? It Doesn’t Get Any Better Than This...
For years, Commodore set the standard with the 1351 $49.95
Mouse. Sure, it was vastly superior to using the old digital Plus S/H
input devices like the 1350 mouse, joysticks or imitation
trackballs. But everything can be improved. Guaranteed
100% 1351-compatible, SmartMouse and SmartTrack
do everything the C-1351 does and more! These highly
intelligent, three-button input devices include a built-in
battery-backed Real-Time Clock, along with double-click
and Turbo features for GEOS. Plus, they come with a
complete set of utilities for using the clock in GEOS and
BASIC applications. Modern ergonomic designs make
these devices smooth operators that are a pleasure to
Creative Micro Designs, Inc.
Creative Micro Designs, Inc., P.O. Box 646, East Longmeadow MA 01028
use. So, if you're tired of the slow, erratic movement of
your current input device, make the intelligent choice and
pick up a SmartMouse or SmartTrack today!
SmartMouse and SmartTrack... the Best C-64/128 Input Devices Ever!
Three buttons means convenience! If you’re a GEOS user, the left * SmartMouse/SmartTrack utilize the same advanced technology
button is configured as single click, the right as a handy double used in today’s powerful 486 and Pentium PC’s, providing you with
click and the center button is the TURBO button. When depressed, unparalleled accuracy and smoothness.
itdoubles the speed at which the pointer moves acrossthe screen. . Built-in battery-backed Real-Time Clock automatically sets the GEOS
Additionally, programmers can assign their own functions to all clock, displays time and can be used in your own programs.
siete sean ahaiiagenioas Includes utilities disk and detailed manual explaining the utilities
Unlike other third party mice or trackballs, the CMD SmartMouse and programming information.
and SmartTrack trackball use the same custom gate array pe aS Attention Lefties! SmartMouse can be altered for left handed use.
" i, t ty.
UNS CI MOR ORR SOTST! MAUSS SOA UANSIRG TEE CoMmaA ¥ Don’t be fooled by the old style digital "trackballs". These only
Switches easily into joystick emulation mode on power-up by perform as well as a joystick. SmartTrack uses analog inputs for
holding down the right button. greater accuracy.
August/September 1996 53 COMMODORE WORLD
Over The kdge..
by Harold Stevens, Jr.
Ky
AHOY THERE, NO PIRATES ALLOWED!
With the absence of commercial software for the
Commodore 64, piracy is on the rampage again,
particularly when it comes to games, utilities
and GEOS. This is something that no computer
user should tolerate as it is both illegal and
immoral.
Several years ago, I gotintoa heated discussion
with a couple of users on a local Commodore
board who were boasting about their ability to
pirate software. These people justified their
actions on the fact that thereisnonew commercial
software available in this country and they have
every right to “steal the warez” that continue to
beproducedin Europeandabroad, ascommercial
producers are ignoring the large followers of
Commodore users that continue to flourish in
North America.
If my memory serves me correctly, these were
also the same people who did the same thing
when commercially produced software was being
distributed at the height of Commodore 64's
popularity back in the mid-to-late 1980s. At that
time their excuse was that the cost of software
was too high and they had the right to “steal the
warez” and distribute it to those who owned
computers, but could not afford to shell out the
money to support their hobby. Many of them
fashioned themselves as modern day Robin
Hoods and devoted computer bulletin board
systems exclusively to pirating.
When I pointed out how wrong their actions
were, one or two of these hackers became upset
and flamed me by calling me “lame” ora couple of
other cyberpunk terms that is not worth
repeating. It appeared that they took the attitude
that they were doing nothing wrong.
COMMODORE WORLD
One thing | have discovered about those
who hack software is that they are usually
young and have a distorted sense of morality.
Usually they don’t get caught until they start
serious hacking into the computer files of
government offices, corporations or computer
bulletin board systems. There were instances
of a couple of high school aged kids in the
Columbus, Ohio, area who were arrested by
local and federal law enforcement officers
because of their hacking. And these kids were
doing their hacking with C-128 computers.
Many of these people don't realize it, but
software piracy is among the top reasons that
commercial software producers pulled
themselves out of the Commodore market. How
could these producers make money, when all
people had to do to get their software was to log
on to a pirate board and download a game or
application that was zipped, lynxed orarced into
asingle file. For those who didn’t want to pay out
money to get software,this was a convenient way
to get something for nothing.
This problem will probably never go
away, as I have noticed quite frequently in
the Commodore newsgroups on the
Internet’s usenet of people asking for copies of
long dead games and applications. Several times
I have had to send a curt E-mail reply to several
Commodore users in Europe seeking pirated
copies of GEOS version 2.0 and warn them that
they were in violation of American and
international copyright laws in distributing
software in this manner.
Because of the selfish actions of pirates
like these, all of the Commodore 64/128
54
users have suffered. I also should point out
that software piracy is not just limited to
the Commodore computers either. Already,
we are starting to see the impact that
software piracy is having on Amiga
computers, as well as IBM types and
MacIntoshes. Itis becoming such a problem
that the software industry had to have
Congress amend the copyright laws to
protect themselves and the software
producers have put pressure on federal
agencies to enforce those laws protecting
intellectual properties.
As one who writes professionally, there is
nothing more hideous than someone who would
steal my work and not compensate me for it. If]
were a programmer, | would feel the same way,
particularly after putting in hours creating a
program, utility or game, hoping to make a
profit, only to find somebody else stealing that
work and distributing to others because of a
twisted sense of morality. Particularly those
individuals who feel that he or she has a right to
my work without compensating me for it. In my
book that’s outright theft and it’s wrong.
So, if you still are pirating copyrighted
software, do us C-64/128 users all a favor and
knock it off. After all, we still want to enjoy our
favorite eight bit computers well into the 21st
Century, don’t we?
§)
Harold Stevens, Jr. is an avid Commodore 64 and
GEOS user and is the Friday night Commodore 64
Roundtable Conference (RTC) host on Genie. His
internet addressis hstevens@freenet.columbus.oh.us
Issue 16
USED SOFTWARE
We buy, sell, and trade used original software. Lowest
prices for C64, C128, Amiga, and IBM. Mention this ad
nent FOTN ete
— “the Gatekeeper
¢.. 610 First St.
Sample: $2.95
6 issue sub:
and your computer type for a free list. Call our BBS for a
complete list within minutes.
BBS:
8N1 1200-28.8k
616-429-7211
Ask for a list via Internet:
CENTSIBLE@DELPHI.COM
Everythingfor Commodore Computers
Sell» Trade» Repair * Buy
1420 County Rd. 914
Burleson, TX 76028
817-295-7658
817-447-6974 - Voice/FAX line
Call or write:
GENTSIBLE
SOFTWARE
P.O. Box 930
St. Joseph, MI 49085
Phone: 616-428-9096
64/1541 Repair - $40
*S PECIAL*
C64, 1541, J-S+Sft. - $99
We carry a full line of hard-
ware, software & maga-
zines, both new & used, in-
cluding European items.
Our flat-rate repairs in-
clude both parts & labor.
Call for details. Trade in
your unwanted items.
Catalog - $2.95
Aut Mayor Creoit
Caros ACCEPTED.
We carry a full line of
Amiga Products.
ALL STORE [TEMS HAVE A 90 DAY WARRANTY. IF, FOR SOME
REASON YOU ARE DISSATISFIED IN YOUR PRODUCT, YOU MAY
RETURN IT FOR REPLACEMENT OR STORE CREDIT ONLY.
SORRY, NO REFUNDS,
UPGRADE YOUR COMMODORE!!!
Refurbished Hardware New Hardware
Drives New APROTEK Accessories
1541/C $89.95 C24-2400 Baud (64/128) $74.95
41 wiDips $104.95 64C- $114.95 User Switch $30. 95
1541-11 $119.95 128- $174.95 Convert-A-Com $29.95
1571 $159.95 128D $324.95
1581 «$174.95 SX-64 $349.95 PR eg a eae
ystem’
MSD-2_ $149.95 1660 $24.95 JittyDOS 128/128D ‘System’ oP. oe
1OOISFD $129.95 1670 $39.95 jo8Kernal $59.95 64Kernal $49.95
S $324.95 B.I. Buscard-Il $59.95 additional JiffyDOS Drive ROM $34.95
Mono’s $44.95+ 1530 Datasette $34.95 RAMLink Bs. $209.95 clvOMB $274.95
Miscellaneous ciw1MB $319.95 cw 4MB_ $479.95
Books$10-$15 Printer Interfaces $49.95+ Real Time Clock (Optional) Add
Prog’s $5-$20 — Epyx Fastload Cartridgo $34.95 FD-2000
$49.95 NEW Super Snapshot v5.22
Super Grafix Jr, $39.95 1750 Supercione REU 512K
Ask For Anything! We May Have It!
J.P. PBM Products By Mail Send CDN Funds/15% USA Exchange
Box# 60515, N. Sheridan Mall P.O 15 day Warranty On Returbished Hdwr.
Downsview, Ont. Canada M3L 1B0 Allow 4-6 weeks for delivery
Tax-Canada + 7%GST, Ontario +8% PST 1996 Catalogue Disk (64 Format) — $2
Shipping-($0-S25=$4, $26-$99=10%, $100-$199=8%, $200-S499=7.5%, %500=-6%, USA=15%)
FREE CATALOG
With Tons of Commodore Stuff!
FREE CATALOG
Parsec, Inc.
P.O. Box 111- CW
Salem, MA 01970-0111
USA
Write to:
August/September 1996
Write promens in
C, build a lightpen,
know all about the
latest products like
4-Scan, Novaterm 9.6
and 64NET, and learn
how to Fill Advanced
64/128 users want
more. We have it.
Send check or money
order for $19.95 to:
CREATIVE PIXELS LTD.
CREATIVE PIXELS PRESENTS
New for the C-64 / 128
The Ghost of
Genghis Khan
*Movie Style Storytelling
*Super Graphics
*Arcade Action
*One or Two Players
Also Available:
THE WINGS OF CIRCE
ESCAPE ROUTE
ISLAND OF THE DRAGONS
P.O. Box 592
Library, PA 15129
PREHISTORIC MAN
CW & RUN BACK ISSUES
For years, RUN Magazine provided Commodore Users with a great source
of information, and now CMD has given you Commodore World. Don't let this
valuable information slip away—fill in the voids in your library now!
RUN Magazine Back Issues
Any 3 issues for $12.00, any 6 for $18.00,
or any 12 for only $24.00
RMJUNSO
RMDEC90
RMJAN91
RMJUN91
RMJAN92
RMMAR92
RMMAY92
RMJAN89
RMFEB89
RMMAY89
RMJUN89
RMJUL89
RMAUG89
RMSEP89
RMOCT89
RMSP89
January 1989
February 1989
May 1989
June 1989
July 1989
August 1989
September 1989
October 1989
Special Issue 1989
RMJANSO January 1990
RMMAY90 May 1990
Shipping: 3-6 issues - U.S. $3.00, Canada $5.00, Foreign $15.00;
12 issues U.S. $5.00; Canada $7,00; Foreign $20.00.
Commodore World Back Issues
$4.95 each, or any 3 for only $12.00
June/July 1990
December 1990
Jan/Feb 1991
JuneJuly 1991
Jan/Feb 1992
March/April 1992
May/June 1992
RMJUL92 July/August 1992
RMSEP92 Sep/October 1992
RMNOV92 Nov/December 1992
Ccws
cw10
cw
Cwi2
cw13
cw14
CW15
Commodore World Issue 1
Commodore World Issue 2
Commodore World Issue 3
Commodore World Issue 4
Commodore World Issue 5
Commodore World Issue 6
Commodore World Issue 7
Commodore World Issue 9
Commodore World Issue 10
Commodore World Issue 11
Commodore World Issue 12
Commodore World Issue 13
Commodore World Issue 14
Commodore World Issue 15
Shipping: U.S. and Canada $2.00 for first issue, plus
$1.00 per additional issues.; Foreign $5.00 per issue.
TO ORDER CALL 1-800-638-3263
COMMODORE WORLD
* CLASSI
ED SHE
C64/128 PUBLIC DOMAIN. REQUEST FREE CATALOG OR
SEND $2 FOR A DEMO & CATALOG. CALOKE IND., P.O.
BOX 18477, RAYTOWN, MO. 64133. VISA-M/CARD
ACCEPTED.
C= Hacking in Print! $6.00 N simply a printout!
NE 68007.
$12.00. Prices
Jim Brain,10710 Bruhn Ave, Banniage on,
SYS.CBM
Printout of COMP.
include shipping.
FAQ:
monthly
2 year.
7301-
Ss publica .
Ko oO
The Ultimate System III (Lottery Prgram)
Ultimate Grade Book (For teachers) $19.95
To Order: CALL (202-316-1803/Tony)
Tolson, P.O. Box 62326, Wash.,
, The
each.
Write: A.
2326.
DC 20029-
CMD 4MB RAMLink
Excellent Cond.
3636 Gra ind
write:
For Sale: (2) Vic 20 computers w/ PS, (1) 1541
Drive w/ Cables, (1) 1530 Datasette. Best Offer.
George York: (501) 481-5682 after 4 pm (CT)
rinter,
sottware
For Sale: C- 128/1571/1902A segue ee
300 modem, C64/1541, 30+ ted
(educ.
condition.
/games/office) - extr
$275
HELP! I have "Titanic-The Recovery Mission" and
I'm Stuck! Can anyone help me, Please? Robert
Wallace, 131 White Horse Park, Absecon, NJ
08201-2402
D-64, DD $79. 95, C-128, 1571 $119.
Cables, Monitors, Software!
complete list. Dept C315,
97440.
95, A50
Send
POB 10121,
E for
Eugene, OR
C-128D, 2nd 1571, 1084S, SP-1000VC. New Unopened:
GEOS 128 2.0, CadPak 128, WordPro 128. Many
Extras. Works Great. $500.00 Delivered. (502)
828-8328.
FREE COMPUTER MAGAZINES!
For list send SASE to:
Williams Ave., Hastings,
pay the shipping.
2s Lambert, 1121
NE 68901-3820.
Don’t wait until it’s too late...
RENEW EARLY|
Is your Commodore World subscription close to
running out? Here’s an easy way to check: look at the mailing label on the
front of your copy. You'll find your subscription number and the expiration
James Smith 123458
issue number. For example:
XP17
123 Home Street
Grand Rapids, MI 49502-0123
Jim's subscription will run out with Issue 17 as indicated by the
EXP17 in his subscription code. Jim would be wise to re-subscribe
early to avoid missing a single issue of Commodore World!
COMMODORE WORLD 56
ADVERTISERS
INDEX
Caloke Industries
Centsible Software
Commodore Country
Computer Power User
Commodore World
CW Game Special
Computer Bargain Store
Creative Micro Designs
Creative Pixels
Gatekeeper
GEOS Publication
Integrated Teknologies
Intercorp
J.P. Products by Mail
Loadstar
Parsec
SOMWVSE:SUPPOMNAG cscvisasisacsvisssnissnamnwenavnes 5
Tech Star
COMMODORE WORLD
Classified Advertising
Commodore World subscribers may place non-commercial
classified advertising in Commodore World at a cost of
$10.00 per issue. Your advertisement may contain up to
150 characters (including spaces). Send your
advertisement with paymentto: CW Classified Advertising,
c/o Creative Micro Designs, Inc., P.O. Box 646, East
Longmeadow MA 01028-0646.
ChAD Service Center
AFFORDABLE ¢ FAST ¢ DEPENDABLE
Call Today 1-800-638-3263
We repair the following equipment: Commodore C-64, 64C, SX-64, C-128
and C128-D computers; 1541, 1541C, 1571 and 1581 Disk Drives plus
CMD Devices. JiffyDOS Installations a specialty. All repairs warranted for
30 days. Minimum charge $35.00 plus parts and return shipping. You must
contact CMD for authorization before sending any equipment.
Creative Micro Designs, Inc. P.O. Box 646 E. Longmeadow, MA 01028
Issue 16
tT TH (iit Mii)
TTT THAT MTT
H Hi i, Hi titi au UU ]
J y
HH, oll} i
aed | Sains | im | = r Ht
there “tin in ee TTT
m ) fii) | ie
= | AA iii, pil
i i e Nt My Hy
For more than‘ fwWo years,
World has empowered C- ae
Why
Hh
providing the latest’ news. ANI
on the world of Commodorevcomputing: ihe
Through our, staff of lea) sxperts Re. ute . ‘i {
Jim) ButterfieldiyMaurite Hendal/Mene! 3 nm)
Oral ebp youl in tou sca Abele i
wi gies and Turtheyexblpfe': eee lll
Pesce
have sien Pre eae
r _ SuBSoribe: of
8 of Commodore history—for the price of subscribing!
. Your cho ee
id P a Con mr mpdore C-65 oitpettl
; = é ot > . 7.
“Cejll 1-200.438-3253— gBEalbheysuver CPU
UM
wah
Nass i “Nt Wa Tobe | ve!
yaa ane subscription or renevnnol aa nd 3 Jace Prizes:
il! qr 3Y p3, 36 Accelerator
f Mi 1
} bil
Contest valid on new subscriptions or renewals, N
Must be received by q (12) 7 aa
September 30, 1996 to be/eligible for thé sweepstakes. Winners, ii
announced in CW Issue 18. Gontact CMD force i i 20, oy D 5 Gitt Certificates
Be a ey comm cam mam mm So oo - side cena | iin aa Que a vee Wu Seweme neem om CEES ENA GEES OSD eS os
Please begin my subscription to Commodore World as soon as possible, snd enter me in the sweepstakes!
Subscriber Information Payment Information
Name: __ _ — OQ Bill me later (one year subscriber only)
Address: _ Q) I've enclosed a check or money order in U.S, Funds
City: _ State/Prov. ZIR/PC: Q Bill subscription to my credit card: (Check one)
Country: __ Phone: ( L) Visa LY MasterCard L) AMEX L) Discover
One Year Subscription (Eight Issues) Card Number:____ ___ Exp. Date: ___
United States.....0...... $29.95 Canada & Mexico......$35.95 Signature: _
Europe (EC Only)......$45.95 Other Foreign... b579S ‘
Mail payments to
Back Issues:
7,
Ultra Fast! ’
SN f
“il ay h
aif mith —
1 By AN) ll Mi
HAH
p Wadi |
09
plus $7.50 S&H
64 Model Available Now
128 Model Coming Soon!
Vat at ‘i \
Compatible!
Easy to Use!
iy
a a Bai
\
Er at will \V
1 -800-638-3263
(NoneFri. y in. = J) O.ffs EST)